JOIN (MySQL)

Programovacie jazyky, rady, poradňa...
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

JOIN (MySQL)

Príspevok od používateľa beluský »

čo vlastne znamená prijoinovať si nejaké dáta...
potrebujem tomu súrn moc dobre rozumieť a na príkadoch som to moc n epochopil.
Základnú pointu si dovolím tvrdiť viem... ale načo to teda je keď sa dá základný JOIN nahradiť WHERE

Kód: Vybrať všetko

SELECT users.meno, adresy.ulica FROM users, adresy WHERE users.id = adresy.id
// nie som si istý či to je dobre ;)
<< ako by to vyzeralo pomocou JOINu?

a potom mám problém s ďalšími druhmi JOINou ako inner, outter...
aspoň za nejaký zrozumiteľný príklad by som bol povďačný, lebo z tých teoretických som už mimo,
vďaka vopred za všetko
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

SELECT users.meno, adresy.ulica FROM users INNER JOIN adresy ON users.id = adresy.id 
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

podla mna je to tuto uplne jasne definovane :)
http://www.w3schools.com/Sql/sql_join.asp
Holubar
Darca
Darca
Používateľov profilový obrázok
Príspevky: 3894
Registrovaný: 24 feb 2005, 21:26
Bydlisko: Senec
Kontaktovať používateľa:

Re: JOIN (MySQL)

Príspevok od používateľa Holubar »

Mam jednu tabulku, kde je primarny kluc, nejake udaje a dalej 4 cudzie kluce, ktore su primarnymi klucmi v inych tabulkach.

Chcem vybrat udaje pre jeden zaznam z tejto tabulky zo vsetkych 5 tabuliek, ako to mam zapisat jednym selectom?
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: JOIN (MySQL)

Príspevok od používateľa __construct »

Keď tam buchneš * tak Ti vyselektuje všetko z každej JOINnutej tabulky ..
Ak chceš vybrať iba niečo tak takto:

Kód: Vybrať všetko

SELECT
tabulka.id_tabulka AS nieco,
tabulka1.id_tabulka1 AS nieco1,
tabulka2.id_tabulka2 AS nieco2,
atd
FROM tabulka
JOIN tabulka1 USING (id_tabulka1)
JOIN tabulka2 USING (id_tabulka2)
WHERE
tabulka.nieco_ine = 2;
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: JOIN (MySQL)

Príspevok od používateľa audiotrack »

takýto join, kde používaš using ale predpokladá rovnaké názvy stlpcov v spájaných tabuľkách.
Holubar
Darca
Darca
Používateľov profilový obrázok
Príspevky: 3894
Registrovaný: 24 feb 2005, 21:26
Bydlisko: Senec
Kontaktovať používateľa:

Re: JOIN (MySQL)

Príspevok od používateľa Holubar »

Vdaka za tip. Funguje to v pripade, ze nepouzivam USING, ale tento sposob: t1.id=t2.id. Pri USING to nefunguje, aj ked maju stlpce rovnaky nazov. Ale mozno bola chyba este niekde inde, no neriesil som to.

Este sa chcem spytat, aky rozdiel bude, ked tam nedam JOIN, ale INNER JOIN alebo OUTER JOIN, nieco som uz o tom aj cital, ale aj tak v tom nemam jasno.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Re: JOIN (MySQL)

Príspevok od používateľa beluský »

Ja som nasiel celkom pekny obrazok ;)
Prílohy
Visual_SQL_JOINS_orig.jpg
__construct
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 108
Registrovaný: 23 sep 2009, 9:32
Bydlisko: Dark Side of The Moon
Kontaktovať používateľa:

Re: JOIN (MySQL)

Príspevok od používateľa __construct »

Ak vieš trochu po anglicky tu je pekná séria článkov:

Kód: Vybrať všetko

http://net.tutsplus.com/tutorials/other/sql-for-beginners/
http://net.tutsplus.com/tutorials/other/sql-for-beginners-part-2/
http://net.tutsplus.com/tutorials/databases/sql-for-beginners-part-3-database-relationships/
Napísať odpoveď