SQL Rokasgrāmata 3. daļa [UNION]
Izmantojot SQL UNION iespējams izpildīt divus vai vairākus SQL pieprasījumus vienlaicīgi
SQL UNION
Lai UNION izpildītos korekti bieži nepieciešams lai peprasīto lauku skaits būtu vienāds
SQL UNION Sintakse
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
Piebilde: Pēc noklusējuma UNION atlasa tikai unikālos ierakstus, lai atlasītu visus ierakstus jāizmanto UNION ALL
UNION ALL Sintakse
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
SQL UNION Izmantošanas piemērs
Divas datubāzes tabulas:
“Employees_Norway”:
| E_ID | E_Name |
|---|---|
| 01 | Hansen, Ola |
| 02 | Svendson, Tove |
| 03 | Svendson, Stephen |
| 04 | Pettersen, Kari |
“Employees_USA”:
| E_ID | E_Name |
|---|---|
| 01 | Turner, Sally |
| 02 | Kent, Clark |
| 03 | Svendson, Stephen |
| 04 | Scott, Stephen |
Lai atlasītu visus atšķirīgos darbiniekus, kuri dzīvo Norvēģijā (Norway) un ASV (USA), izmantojam zemāk redzamo SQL pieprasījumu
SELECT E_Name FROM Employees_Norway UNION SELECT E_Name FROM Employees_USA
Iegūtie rezultāti:
| E_Name |
|---|
| Hansen, Ola |
| Svendson, Tove |
| Svendson, Stephen |
| Pettersen, Kari |
| Turner, Sally |
| Kent, Clark |
| Scott, Stephen |
Šo piemēru izmantojot nav iespējams atlasītu visus darbiniekus (ierakstus) no abām tabulām. Kā redzam tika atlasīti tikai unikāli ieraksti.
UNION ALL Piemērs
Tagad atlasīsim visus ierakstus no abām tabulām
SELECT E_Name FROM Employees_Norway UNION ALL SELECT E_Name FROM Employees_USA
Rezultāts:
| E_Name |
|---|
| Hansen, Ola |
| Svendson, Tove |
| Svendson, Stephen |
| Pettersen, Kari |
| Turner, Sally |
| Kent, Clark |
| Svendson, Stephen |
| Scott, Stephen |
Kā redzams iegūtājos rezultātos tika alasīti visi ieralsti neskatoties uz to unikalitāti.
Autors: Roberts Mozgis (rob)
Web izstrādātājs ar vairāku gadu pieredzi. Esmu strādājis pie daudziem interesantiem projektiem Latvijā un ārpus tās. Specializācija PHP, JavaScript, CSS, Html, kā viss ap datubāzēm.






AnetiX www 08.05.2009 | 14:47
Ar UNION gan jāuzmanās sortēšanā, jo tur filesort sanāk izmantot, un tāpēc mēdz biku iebremzēt db darbību, ja darbības notiek ar lielu tabulu.