Avatar billede fcknet Nybegynder
30. september 2004 - 13:51 Der er 3 kommentarer og
1 løsning

Forespørgsel fra flere tabeller

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?
Avatar billede arne_v Ekspert
30. september 2004 - 14:02 #1
Brug:

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
Avatar billede fcknet Nybegynder
30. september 2004 - 14:08 #2
Nu bruger jeg en løkke til at sammensætte mit query:
<?php
    foreach ($_POST[ingredients] as $val) {
        if ($first) {
            $sql .= " AND justdrink_drinkingredients.id = $val";
            $first = false;
        } else {
            $sql .= " AND justdrink_drinkingredients.id = $val";
        }
    }
    $data = $db->query("SELECT justdrink_drinks.id FROM justdrink_drinkingredients, justdrink_drinks WHERE justdrink_drinkingredients.drink=justdrink_drinks.id$sql");
?>

Hvordan skal jeg omskrive det så?
Avatar billede fcknet Nybegynder
30. september 2004 - 14:32 #3
TROR det virker nu ;)
Avatar billede arne_v Ekspert
30. september 2004 - 20:04 #4
lyder godt - så ligger jeg et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester