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
0
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.
0
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