Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
#1 · Zasláno: 2. 7. 2014, 13:21:05
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 |
#2 · Zasláno: 2. 7. 2014, 13:30:43
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 |
#3 · Zasláno: 2. 7. 2014, 13:45:11
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 |
#4 · Zasláno: 2. 7. 2014, 13:50:21
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 |
#5 · Zasláno: 2. 7. 2014, 14:01:48
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 |
#6 · Zasláno: 2. 7. 2014, 14:08:04
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š. |
||
Časová prodleva: 10 let
|
0