Autor | Zpráva | ||
---|---|---|---|
Ba Profil * |
#1 · Zasláno: 24. 10. 2010, 17:07:16
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 |
#2 · Zasláno: 24. 10. 2010, 17:59:53
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 * |
#3 · Zasláno: 24. 10. 2010, 18:13:42
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 * |
#4 · Zasláno: 24. 10. 2010, 18:52:55
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 * |
#6 · Zasláno: 25. 10. 2010, 02:04:40
Vyřešeno, použil jsem is null po tom, co jsem si znovu přečet Jokerův příspěvek
|
||
Časová prodleva: 14 let
|
0