Autor Zpráva
luma64
Profil
Zdravim, mám 2 tbl: vszp a hosp_mesiace. Potrebujem ich prepojiť cez pole kododd a jeho konkrétnu hodnotu = '11111'; každá z nich ho obsahuje; v tbl vszp sa nachádza 287 zaznamov ; v tbl hosp_mesiace sa nachádza 1223 záznamov.
Ked ich spojim obyčajným

Select h.kododd from vszp v, hosp_mesiace h where v.kododd = h.kododd and v.kododd='11111';

Dostanem 350000 záznamov.
juriad
Profil
Ale to je správně. Ty jsi vlastně nezadal vazební podmínku. Jen jsi řekl, že chceš všechny kombinace 287 záznamů z první tabulky a 1223 záznamů z druhé tabulky; těch je 351001.
luma64
Profil
No a neznamená to niečo ako "daj mi všetky záznamy kde sa v oboch tabulkách zhodujú polia kododd pole A SÚČASNE je v tbl vszp hodnota v poli kododd='11111' ?
juriad
Profil
luma64:
Prohlédni si ty výsledky, ta podmínka, kterou jsi zapsal je splněná u všech. Ty intuitivně asi chceš jinou vazební podmínku (pro jiný sloupec).
luma64
Profil
Nie, určite ide o stĺpec kododd. Nasledovný príkaz

SELECT hosp_mesiace.kododd FROM hosp_mesiace LEFT JOIN vszp ON hosp_mesiace.kododd = vszp.kododd
where hosp_mesiace.kododd = '004101';

mi vráti ten istý počet záznamov
juriad
Profil
luma64:
Já ti věřím, jen říkám, že je to správné chování. Všechny řádky, které databáze vrátí mají shodné kododd a u všech je rovné zadané hodnotě. Pokud chceš záznamy z obou tabulek propojit, musíš použít jiný sloupec, než ten ten kterým filtruješ.

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: