- Home
- Categorie
- Coding e Sistemistica
- PHP
- Eseguire query con join e count
-
Eseguire query con join e count
Dovrei eseguire una query su tabelle che sono in relazione contando il numero di righe, ma non so come fare allora provo a fare un esempio di come è strutturato il database e cosa vorrei cercare.
Supponiamo di avere tre tabelle, una per i piatti che chiamo "piatti", una per gli ingredienti che chiamo "ingredienti" ed una che mette in relazione le due tabelle che chiamo "piatti_ingredienti".Per esempio, "piatti" ha i campi "id" e "piatto":
id = 1, piatto = spaghetti al pomodoro
id = 2, piatto = insalata
id = 3, piatto = crostataPoi ho la tabella "ingredienti" che ha i campi "id" e "ingrediente":
id = 1, ingrediente = spaghetti
id = 2, ingrediente = pelati
id = 3, ingrediente = lattuga
id = 4, ingrediente = aceto
id = 5, ingrediente = olio
id = 6, ingrediente = pasta
id = 7, ingrediente = marmellataInfine la tabella "piatti_ingredienti" mette in relazione le due precedenti, per cui sarà qualcosa tipo:
id_piatti = 1, id_ingredienti = 1
id_piatti = 1, id_ingredienti = 2
id_piatti = 2, id_ingredienti = 3
id_piatti = 2, id_ingredienti = 4
id_piatti = 2, id_ingredienti = 5
id_piatti = 3, id_ingredienti = 6
id_piatti = 3, id_ingredienti = 7A questo punto io vorrei selezionare i piatti che hanno almeno tre ingredienti; come faccio?
-
Ho risolto, con una query simile:
SELECT p.* FROM piatti p
WHERE (SELECT COUNT(i.*) FROM ingredienti i WHERE i.id_piatti = p.id) >= 3