Autor Zpráva
Under
Profil
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
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
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.id2table2.id = postavy.id2

Mimochodom“ porušuješ 1. záväzné pravidlo:
BTW: velmi šikovnou vlastností …

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: