Autor Zpráva
Vanama
Profil
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
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
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.

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:

0