Autor Zpráva
luma64
Profil
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
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
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;

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: