Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
#1 · Zasláno: 29. 7. 2013, 15:56:06
Dobrý deň, kde pls robím chybu v selekte? Vysledok ma byt: vsetky riadky z tbl saly_csz_cos a z tbl jqcalendar tie, ktore bolo nahrate '2013-07-22' na jednej zo sal.
SELECT * FROM saly_czs_cos inner JOIN jqcalendar ON saly_czs_cos.sala_nazov = jqcalendar.Location and substr(jqcalendar.starttime,1,10)='2013-07-22' and saly_czs_cos.sala_typ='Vysunute' and saly_czs_cos.sala_typ=jqcalendar.sala_typ and jqcalendar.sala_cislo = saly_czs_cos.sala_cislo group by saly_czs_cos.sala_typ, saly_czs_cos.sala_nazov; |
||
Taps Profil |
#2 · Zasláno: 29. 7. 2013, 16:02:22
luma64:
zkus SELECT * FROM saly_czs_cos inner JOIN jqcalendar ON saly_czs_cos.sala_nazov = jqcalendar.Location WHERE substr(jqcalendar.starttime,1,10)='2013-07-22' and saly_czs_cos.sala_typ='Vysunute' and saly_czs_cos.sala_typ=jqcalendar.sala_typ and jqcalendar.sala_cislo = saly_czs_cos.sala_cislo group by saly_czs_cos.sala_typ, saly_czs_cos.sala_nazov; |
||
luma64 Profil |
#3 · Zasláno: 29. 7. 2013, 16:06:29
hm..takyto selekt som skusal. Vysledok je 6 zaznamov. Ma ich byt 11, t.j. vsetky z tbl saly_czs_cos;
|
||
Tori Profil |
luma64:
Inner join vrací pouze ty řádky, které jsou v obou spojovaných tabulkách - asi chcete použít left join, který vrátí všechny řádky z levé tabulky, a k nim z pravé tabulky buď odpovídající řádek nebo NULL. Místo substr(starttime,1,10) se dá (imho přehledněji) použít date(starttime) .
Zkuste (podmínky, které se netýkají přímo spojení tabulek, jsem dala do WHERE): SELECT * FROM saly_czs_cos LEFT JOIN jqcalendar ON saly_czs_cos.sala_nazov = jqcalendar.Location and date(jqcalendar.starttime) = '2013-07-22' and saly_czs_cos.sala_typ = jqcalendar.sala_typ and jqcalendar.sala_cislo = saly_czs_cos.sala_cislo WHERE saly_czs_cos.sala_typ = 'Vysunute' GROUP BY saly_czs_cos.sala_typ, saly_czs_cos.sala_nazov; |
||
Časová prodleva: 11 let
|
0