Praktické využití UNION a JOIN v MySQL

Programujete-li objektově, musíte se trápit se složitými strukturami SELECT dotazů. V procedurálním programování to lze sice obejít pomocí kaskády jednoduchých dotazů, kdy výsledky zpracujete v php a opět pošlete dotaz na databázi, jenže je to na úkor výkonnosti a u navštěvovanějších větších webů s rozsáhlými databázemi by to bylo pro server neúnosné. Normální je, můžete-li všechna potřebná data získat z databáze v jednom dotazu, byť je většinou velmi komplikovaný. Kód se následně s velkými obtížemi edituje, avšak složené dotazy jsou při moderním programování nevyhnutelné.

Při sestavování dotazů můžete používat následující příkazy:

 

Nejjednodušší jsou vnořené dotazy. Mějme dvě tabulky: kontakty a kontakty_akce. Tabulka kontakty obsahuje běžné informace jako jméno, příjmení, adresa … (netřeba zde uvádět strukturu tabulky). Tabulka kontakty_akce slouží k zaznamenávání akcí nad kontakty. (Používá se například v CRM systémech, kdy potřebujete mít přehled, kdy a jaký typ zprávy jste komu poslali.)

 

V příkazu SELECT jsme zvolili hvězdičkou všechny záznamy a dále pomocí sjednocovacích příkazů CONCAT řetězec dat z tabulky kontakty_akce, která jsou oddělená středníkem.

 

 

Nejpoužívanější jsou každopádně JOINs. Hezky vysvětlené jsou na příkladě Marťanské základny.