Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
#1 · Zasláno: 16. 1. 2013, 13:17:48
Ako ma pls spravne vyzerat left join v selecte v php stranke ak mam 3 tabulky. Skusal som to v mysql ale nezobrazovali mi pozadovane hodnoty
select h.*, r.dlzka_minuty, p.poznamka from opsaly_pacient h, rozvrh r, opsaly_poznamka p where h.skratka='..hodn_skratka...' and r.sub_id='..hodn_epz..' and r.skratka=h.skratka and h.epiz=r.sub_id and p.epiz=r.sub_id and p.skratka='..hodn_skratka...' and p.skratka=r.skratka ; |
||
Tori Profil |
luma64:
Co to má dělat - ke každému záznamu z tabulky h najít jeden nebo víc řádků z osatních tabulek? Které sloupce se v tabulkách používají jako primární / cizí klíče? resp.: jaký dostanete výsledek a jaký chcete získat? |
||
luma64 Profil |
#3 · Zasláno: 16. 1. 2013, 13:30:18
K tabulke h ma dotiahnut udaje z tabulky r a poznamku z tabulky p. Selektom sa zobrazi vzdy iba o jeden zaznam. Ak poznamka neexistuje nevypise sa ani jeden zaznam.
Primarne kluce: tbl r je to tbl_id tbl h je to epiz tbl p id a epiz |
||
Tori Profil |
#4 · Zasláno: 16. 1. 2013, 20:27:52
Když to změním do trochu (pro mě) čitelnější podoby, dostanu:
select h.*, r.dlzka_minuty, p.poznamka from opsaly_pacient h inner join rozvrh r on r.skratka = h.skratka and h.epiz = r.sub_id inner join opsaly_poznamka p on p.epiz = r.sub_id and p.skratka = r.skratka where h.skratka='..hodn_skratka...' and r.sub_id='..hodn_epz..' and p.skratka='..hodn_skratka...' table1, table2 je totéž jako table1 inner join table2 , jen má nižší prioritu. Zřejmě je potřeba některý nebo oba joiny změnit na left join (podle toho, která data mohou chybět).
|
||
Časová prodleva: 11 let
|
0