Autor Zpráva
Ba
Profil *
Mám tři tabulky, jedna z nich je vazební, aby ze dvou tabulek byl vztah N:M.

třeba tabulky data a barvy spojuju.

A teď mi jde o to, že mám dynamickej dotaz, který vybírá výsledky, podle zadanýho id barvy, ale chtěl bych ještě zobrazit i výsledky, kde třeba k datům není přidělená žádná barva. Věděl by někdo jak na to?
Joker
Profil
Ba:
chtěl bych ještě zobrazit i výsledky, kde třeba k datům není přidělená žádná barva
Použít vnější spojení, tj. místo JOIN použít LEFT JOIN.
Z levé tabulky potom budou ve výběru i řádky, se kterými nejsou spojené žádné řádky pravé tabulky (ve výběru u sloupců pocházejících z pravé tabulky bude NULL)
Ba
Profil *
Sakra, nějak mi to nejede

možná to je tim, že jsem to nepopsal celý, k datum je jeste pripojena dalsi tabulky a k ni dalsi.

takže to v podstatě je tak, že mám tabulku data, k ni M:N tabulku barvy, pře vazební a k těm datům ještě 1:N tabulku verze a k verzi 1:N tabulku soubory.

a ted vyvstává problém, jak to celý propojit a jeste zaroveň, aby to fungovalo tak, jak jsem psal předtim, teď mi to vždycky jen zobrazí to, kde jsou určený barvy, zaznamy, ke kterým není nic přiřazeno, nezobazí.
I když jsem se tam pokusil vložit ten LEFT JOIN
Petr__
Profil *
Ba:
Dej sem celý ten dotaz, jinak se to nepohne.
Ba
Profil *
Po nějakých úpravách takhle, ale asi jsem se už zamotal do toho. Spojuju jen Data a vazebni, protože ty další data z Barvy nepotřebuju zobrazovat, jen potřebuju vyhledávat id barvy, což už je ve vazební, ale třeba jsem se seknul tady

Select * FROM DATA f
LEFT JOIN Data_Barvy z ON f.ID_Data=z.ID_Data
JOIN Verze r ON f.ID_Data = r.ID_Data
JOIN Soubory s ON r.ID_Verze = s.ID_Verze
Ba
Profil *
Vyřešeno, použil jsem is null po tom, co jsem si znovu přečet Jokerův příspěvek

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: