Autor | Zpráva | ||
---|---|---|---|
Under Profil |
#1 · Zasláno: 13. 10. 2010, 18:20:22
Potřeboval bych pomoct s jedním SQL příkazem, resp. rozšířit ho, v současnosti vypadá zhruba takto:
"SELECT nick,site,level,id2 FROM postavy ORDER BY id DESC" Potřeboval bych ještě ale vytáhnout nick z druhé tabulky kde id=id2, vím že se to dělá nějak přes JOIN ale vždycky co sem to zkoušel sám tak mi to nějak nefungovalo dík za odpovědi |
||
sysel Profil |
#2 · Zasláno: 13. 10. 2010, 20:21:01
Jistě, ačkoliv v diskusi konkrétně o MySQL je uvedeno, že konstrukci JOIN je možno použít z důvodů kompatibility se standardem, ale vnitřně je tato konstrukce převedena na odpovídající podmínku WHERE. Takže:
SELECT nick.table2, site.postavy, level.postavy, id2.postavy FROM table2, postavy WHERE id.table2 = id2.postavy vyjde (v MySQL) prakticky nastejno jako: SELECT nick.table2, site.postavy, level.postavy, id2.postavy FROM postavy JOIN table2 ON id.table2 = id2.postavy Samozřejmou podmínkou svižného průběhu je indexování obou tabulek. S pár záznamy se sice nic nepozná, ale už se stovky mohou citelně projevit. Ještě poznámka - takováto zjednodušená forma je možná v případě, že obě tabulky jsou v téže databázi. Ale to, doufám, jsou. BTW: velmi šikovnou vlastností tohoto diskusního fóra je to, že klinutím na klíčová slova v příkladu se dostanete na manuálové stránky, které (ač často v Angličtině) obsahují vždy i pár příkladů, z nichž se lze poučit. |
||
__construct Profil |
#3 · Zasláno: 14. 10. 2010, 07:44:15
sysel:
Aspoň sa netvár chytro keď už píšeš blbosti .. Odkedy sa píše názov stĺpca pred názvom tabuľky ? > SELECT nick.table2, site.postavy, level.postavy, id2.postavy > FROM table2, postavy > WHERE id.table2 = id2.postavy > SELECT nick.table2, site.postavy, level.postavy, id2.postavy > FROM postavy JOIN table2 ON id.table2 = id2.postavy Keď už tak: SELECT … postavy.id2 … table2.id = postavy.id2 „Mimochodom“ porušuješ 1. záväzné pravidlo: „BTW: velmi šikovnou vlastností …“ |
||
Časová prodleva: 14 let
|
0