Sākums » Datubāzes

SQL Rokasgrāmata 3. daļa [UNION]

08.04.2009 10:44 356 skatījumi Viens komentārs

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.

VN:F [1.2.3_620]
Rating: 5.0/5 (1 vote cast)
  • AnetiX www

    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.

    VA:F [1.2.3_620]
    Rating: 0.0/5 (0 votes cast)
    1
  • Nav nevienas atsauces

Ir ko teikt?

Vari izmantot:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Raksta komentāru RSS