Autor Zpráva
Darth-Cz-
Profil *
Dobrý den,

chtěl bych vás poprosit o pomoc s následujícím problémem:

Mám dvě tabulky v relaci N:M, tudíž jsem vytvořil třetí a nyní bych chtěl vybírat z databáze data pomocí inner join, ale nejde mi to :(

Tabulky jsou tyto:

tabulka testy, která má v sobě id
tabulka otazky, ktera má v sobě id
a třetí spojovací tabulka s názvem testy_otazky, ve které jsou atributy testy_id a otazky_id.

Řekněme, že znám id testu a podle něj chci vybrat data z tabulky otazky.

Zkoušel jsem to takto:

SELECT otazky.otazka from otazky inner join testy_otazky on testy_otazky.testy_id = 23


Ale to mi zobrazí všechny otázky z tabulky otázky a dokonce vícekrát. Mělo by to vybrat jen 2 otazky, a to s id 1 a 2, jelikož záznamu testy_id = 23 odpovídají záznamy otazky_id = 1 a otazky_id = 2.

Nevíte někdo, jak na to?

Za odpověď moc děkuji.
TomášK
Profil
SELECT otazky.otazka 
FROM 
    otazky 
    JOIN testy_otazky ON testy_otazky.otazka_id = otazky.id 
WHERE 
    testy_otazky.testy_id = 23;
Darth-Cz-
Profil *
TomášK:
Díky moc. Tohle funguje skvěle.

Ještě bych se chtěl zeptat při této příležitosti, jak by vypadal dotaz, kdyz bych chtěl vybírat data zároveň z tabulky testy, tj spojili by se tři tabulky.

Za odpověď děkuji
TomášK
Profil
SELECT otazky.otazka, testy.test 
FROM 
    otazky 
    JOIN testy_otazky ON testy_otazky.otazky_id = otazky.id 
    JOIN testy ON testy.id = testy_otazky.testy_id 
WHERE 
    testy_otazky.testy_id = 23;
Darth-Cz-
Profil *
TomášK:
Díky moc :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: