[#] Pobranie wyniku z wielu tabel - SQL UNION

( Ostatnio zmieniony śr., 11/06/2008 - 08:54 )
 

Za pomocą operatora UNION możemy dodać wyniki poszczególnych zapytań (czyli zwiększyć liczbę wierszy wyniku. Złączenia JOIN zwiększały liczbę kolumn, złączenie UNION zwiększa liczbę wierszy). Łączone wyniki muszą składać się z takiej samej liczby kolumn, a poszczególne kolumny muszą być tego samego typu, poza tym konieczne jest, aby występowały one w tej samej kolejności w obu wynikach

Złączenie wyników dwóch prostych zapytań

SELECT nazwisko FROM klienci
UNION
SELECT opis FROM pozycje;
+--+
| nazwisko          |
+++
| Jarusinek         |
| Jarusinek         |
| Jarusinek         |
| Homerak           |
| Homerak           |
| Nowak             |
| Nowak             |
| Nowak             |
| Nowak             |
| Nowak             |
| Nowak             |
| Halke             |

| Koszulki          |
| Płyty CD          |
| Pocztówki         |
| Ramka na zdjęcia  |
| Puzzle            |
+--+

Przykład pokazujący domyślne usuwanie duplikatów z wyników złączenia UNION

SELECT pozycja_id FROM pozycja UNION SELECT pozycja_id FROM zamowienia;
++
| pozycja_id |
++
| 1       |
| 2       |
| 3       |
| 4       |
| 5       |
| 6       |
| 7       |
| 8       |
| 9       |
| 10      |
| 11      |
| 12      |
++

jeśli jednak chcemy duplikaty użyjmy (ALL)

SELECT pozycja_id FROM pozycja UNION ALL SELECT pozycja_id FROM zamowienia;
++
| pozycja_id |
++
| 1       |
| 2       |
| 3       |
| 4       |
| 5       |
| 6       |
| 7       |
| 8       |
| 9       |
| 10      |
| 11      |
| 12      |
| 1       |
| 2       |
| 4       |
| 5       |
| 7       |
| 8       |
| 10      |
++
Twoja ocena: Brak Średnio: 3 (8 głosów)

Odpowiedzi : 2

Ostatni komentarz : pon., 19/04/2010 - 14:28

giT

Przydatne

Dodaj nową odpowiedź

Informacja:

Osoby zamieszczające wypowiedzi naruszające prawo lub prawem chronione dobra osób trzecich, mogą ponieść z tego tytułu odpowiedzialność karną lub cywilną. Upewnij się, że twoja wypowiedź nie godzi w niczyje mienie.

  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <strong> <blockquote> <code>
  • Znaki końca linii i akapitu dodawane są automatycznie.

Więcej informacji na temat formatowania

Łapirobot
Proszę odpowiedzieć
2
q
U
v
i
7
G
p
Q
V
Enter the code without spaces and pay attention to upper/lower case.