如何在此查詢中使用 have?
我寫了一個查詢,用于熱門帖子。
SELECT *
FROM auteurs
INNER JOIN posts ON auteurs.id = posts.auteur_id
這有效,但它應該只顯示超過 10 個贊的帖子,當我在查詢中添加這樣的內容時,HAVING COUNT likes > 10它不起作用,但我必須在查詢中使用 Have。所以最終結果必須是,它只會顯示總點贊數超過 10 的作者。
匯入.sql
-- phpMyAdmin SQL Dump
-- version 5.1.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Gegenereerd op: 02 nov 2021 om 10:32
-- Serverversie: 10.4.14-MariaDB
-- PHP-versie: 7.4.11
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = " 00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `foodblog`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `auteurs`
--
CREATE TABLE `auteurs` (
`id` int(11) NOT NULL,
`auteur` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Gegevens worden ge?xporteerd voor tabel `auteurs`
--
INSERT INTO `auteurs` (`id`, `auteur`) VALUES
(1, 'Mounir Toub'),
(2, 'Miljuschka'),
(3, 'Wim Ballieu');
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `posts`
--
CREATE TABLE `posts` (
`id` int(11) NOT NULL,
`titel` varchar(255) DEFAULT NULL,
`datum` datetime DEFAULT current_timestamp(),
`img_url` varchar(255) DEFAULT NULL,
`inhoud` text DEFAULT NULL,
`auteur_id` int(11) DEFAULT NULL,
`likes` int(11) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Gegevens worden ge?xporteerd voor tabel `posts`
--
INSERT INTO `posts` (`id`, `titel`, `datum`, `img_url`, `inhoud`, `auteur_id`, `likes`) VALUES
(1, 'Pindakaas', '2020-06-18 13:25:00', 'https://i.ibb.co/C0Lb7R1/pindakaas.jpg', 'Verwarm de oven voor op 180 °C. Verdeel de pinda’s over een met bakpapier beklede bakplaat en rooster in ca. 8 min. lichtbruin. Schep regelmatig om. Maal de warme pinda’s in de keukenmachine in 4 min. tot een grove, dikke pindakaas. Schep de rand van de kom regelmatig schoon met een spatel. Voeg het zout, de olie en honing toe en maal nog 1 min. tot een gladde pindakaas. Schep in een pot en sluit af.\n variatietip: Houd je van pindakaas met een smaakje? Voeg dan na de honing 1 el sambal badjak, 1 tl gemalen kaneel of 1 el fijngehakte pure chocolade toe. bewaartip: Je kunt de pindakaas 3 weken in de koelkast bewaren.', 1, 15),
(2, 'Baklava', '2020-03-11 10:28:00', 'https://i.ibb.co/ZWVRdPT/baklava.jpg', 'Voorbereiding\n\n Verwarm de oven voor op 190 °C. Vet de bakvorm in met roomboter.\n Smelt de roomboter in een pannetje. Snijd het baklavadeeg op dezelfde breedte als de bakvorm en bewaar het in een schone droge keukendoek om uitdrogen te voorkomen. Verwarm in een pan 300 gr honing met 20 ml oranjebloesemwater en houd dit mengsel warm. Roer in een mengkom de gezouten roomboter, 500 g gemalen walnoten, de rest van de honing en het oranjebloesemwater en de kaneel door elkaar. Verdeel het mengsel in zeven gelijke porties (van circa 90 g).\n\n Bereiding\n Bestrijk een vel baklavadeeg met gesmolten roomboter. Leg er een tweede vel op en bestrijk dat ook. Neem één portie van het walnotenmengsel en verdeel dat onderaan over het baklavadeeg. Rol op tot een staaf, leg deze in de bakvorm en bestrijk met gesmolten roomboter. Maak de rest van de staven op dezelfde manier.\n Snijd elke staaf met een scherp mes meteen in zessen. Bak de baklava in circa 25 minuten goudbruin en krokant in de oven.\n Neem de bakvorm uit de oven en verdeel de warme honing over de baklava. Garneer meteen met de rest van de fijngemalen walnoten. Laat de baklava minimaal 3 uur afkoelen voordat je ervan gaat genieten.', 2, 34),
(14, 'Bit Academy', '2021-10-29 14:38:22', 'https://i.ytimg.com/vi/uQDOFbTNU-4/maxresdefault.jpg', 'MOunirrr', 3, 1);
--
-- Indexen voor ge?xporteerde tabellen
--
--
-- Indexen voor tabel `auteurs`
--
ALTER TABLE `auteurs`
ADD PRIMARY KEY (`id`);
--
-- Indexen voor tabel `posts`
--
ALTER TABLE `posts`
ADD PRIMARY KEY (`id`),
ADD KEY `auteur_id` (`auteur_id`);
--
-- AUTO_INCREMENT voor ge?xporteerde tabellen
--
--
-- AUTO_INCREMENT voor een tabel `auteurs`
--
ALTER TABLE `auteurs`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT voor een tabel `posts`
--
ALTER TABLE `posts`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;
--
-- Beperkingen voor ge?xporteerde tabellen
--
--
-- Beperkingen voor tabel `posts`
--
ALTER TABLE `posts`
ADD CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`auteur_id`) REFERENCES `auteurs` (`id`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
uj5u.com熱心網友回復:
where根據您的表格和資料記錄,您只需要條件來過濾超過 10 個喜歡的記錄。
SELECT *
FROM auteurs
INNER JOIN posts ON auteurs.id = posts.auteur_id
WHERE likes > 10;
演示:https : //www.db-fiddle.com/f/qff694udysNgqbyJyFcDzn/0
uj5u.com熱心網友回復:
Posts表有likes和它的喜歡計數。因此,過濾超過 10 個贊(或任何謂詞)的帖子。完成后,加入作者以獲取作者詳細資訊。
select * from author as a
inner join
(select * from posts where likes > 10) as p
on a.id = p.author_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346166.html
上一篇:sql表索引
下一篇:如果前面沒有相同字符,則替換字符
