Forespørgsel fra flere tabeller

Tags:    php

Jeg har følgende tabel:

justdrink_drinkingredients:
id - ID på den ingrediens som er i drinken
drink - ID på drinken som ingrediensen er i

Nu er mit problem at jeg skal finde alle drinks hvor nogle bestemte ingredienser indgår. Lad os bare sige ingrediens 1 og 2. Begge ingredienser SKAL være i drinken, men der må også gerne være andre end de to.

Indtil videre har jeg været omkring følgende:
SELECT justdrink_drinks.id FROM justdrink_drinkingredients, justdrink_drinks WHERE justdrink_drinkingredients.drink=justdrink_drinks.id AND justdrink_drinkingredients.id = 1 AND justdrink_drinkingredients.id = 2 GROUP by drink

Det returnerer ingen drinks, selvom jeg ved at der er drinks som passer til forespørgslen.

Hvordan skal min forespørgsel se ud?



2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Et hurtigt skud fra hoften ville være noget med at lave "AND justdrink_drinkingredients.id = 1 AND justdrink_drinkingredients.id = 2" om til "AND (justdrink_drinkingredients.id = 1 OR justdrink_drinkingredients.id = 2)" og så smide en HAVING count(drink) = 2 på efter din group.

Går ud fra at en subselect ikke er en mulighed i den db du bruger.



SELECT justdrink_drinks.id
FROM justdrink_drinkingredients a, justdrink_drinkingredients b, justdrink_drinks
WHERE a.drink=justdrink_drinks.id AND b.drink=justdrink_drinks.id AND
a.id = 1 AND b.id = 2



t