Autor | Zpráva | ||
---|---|---|---|
Vanama Profil |
#1 · Zasláno: 16. 8. 2011, 21:32:32 · Upravil/a: Vanama
Ahoj,
zas jsem se zasekl na něčem co mi nejde rozlousknout. Potřebuju vybrat z DB řádky dle stejného id ze třech tabulek, ale zároveň ze dvou dle datumu. Což by nebyl problém. SELECT t.id, tt.count, ttt.count FROM tabulka t LEFT JOIN tabulka2 tt ON tt.id = t.id LEFT JOIN tabulka3 ttt ON ttt.id = tt.id AND tt.date = ttt.date WHERE t.id = 1 AND tt.date = '2011-8-15' Problém ale nastane ve chvíli, když řádek s tímto datem v tabulce není. Dotaz potom nevrátí žádná data, ale já bych potřeboval, aby mi minimálně vracel hodnoty z první tabulky a z těch ostatních může být NULL, když konkrétní datum chybí. Chci vrátit takto pouze jeden řádek. Díky za odpověď |
||
Joker Profil |
#2 · Zasláno: 16. 8. 2011, 21:45:11
Vanama:
Takže, jestli to dobře chápu, vrátit řádky, kde tt.date je ta buď ta hodnota, nebo není vyplněno vůbec? Jestli ano, tak takhle: WHERE t.id = 1 AND (tt.date = '2011-8-15' OR tt.date IS NULL) „Chci vrátit takto pouze jeden řádek.“ Tak na konec ještě: LIMIT 1 |
||
Vanama Profil |
#3 · Zasláno: 16. 8. 2011, 21:49:17
Už mě to docvaklo, udělal jsem to takhle
SELECT t.id, tt.count, ttt.count FROM tabulka t LEFT JOIN tabulka2 tt ON tt.id = t.id AND tt.date = '2011-8-15' LEFT JOIN tabulka3 ttt ON ttt.id = tt.id AND ttt.date = '2011-8-15' WHERE t.id = 1 Každopádně díky. |
||
Časová prodleva: 13 let
|
0