PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana UNION Bekerja di PostgreSQL

Di PostgreSQL, UNION operator menggabungkan hasil dari beberapa kueri ke dalam satu kumpulan hasil.

Sintaks

Sintaks resminya seperti ini:

query1 UNION [ALL] query2

UNION operator menambahkan hasil query2 ke hasil query1 (walaupun tidak ada jaminan bahwa ini adalah urutan pengembalian baris).

Baris duplikat dihilangkan kecuali UNION ALL digunakan.

Contoh

Misalkan kita memiliki tabel berikut:

SELECT * FROM Teachers;
SELECT * FROM Students;

Hasil:

 teacherid | teachername 
-----------+-------------
         1 | Warren
         2 | Ben
         3 | Cathy
         4 | Cathy
         5 | Bill
         6 | Bill

 studentid | studentname 
-----------+-------------
         1 | Faye
         2 | Jet
         3 | Spike
         4 | Ein
         5 | Warren
         6 | Bill

Kita dapat menggunakan UNION operator untuk mengembalikan semua guru dan siswa:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

Hasil:

 teachername 
-------------
 Spike
 Ben
 Ein
 Cathy
 Jet
 Faye
 Bill
 Warren
(8 rows)

Secara default, UNION operator secara implisit menerapkan DISTINCT operasi. Dengan kata lain, ini hanya mengembalikan nilai yang berbeda secara default. Jadi hasil di atas hanya berisi satu masing-masing Warren, Cathy dan Bill. Ini terlepas dari fakta bahwa tabel gabungan sebenarnya berisi dua Warrens, dua Cathys, dan tiga Bills (ada dua guru bernama Cathy, seorang guru dan pelanggan bernama Warren, dan dua bernama Bill, serta satu siswa bernama Bill).

Berikut adalah contoh yang secara eksplisit menggunakan DISTINCT operator:

SELECT TeacherName FROM Teachers
UNION DISTINCT
SELECT StudentName FROM Students;

Hasil:

 teachername 
-------------
 Spike
 Ben
 Ein
 Cathy
 Jet
 Faye
 Bill
 Warren
(8 rows)

Hasil yang sama.

Sertakan Duplikat

Kita dapat menggunakan ALL kata kunci untuk memasukkan nilai duplikat dalam hasil:

SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;

Hasil:

 teachername 
-------------
 Warren
 Ben
 Cathy
 Cathy
 Bill
 Bill
 Faye
 Jet
 Spike
 Ein
 Warren
 Bill
(12 rows)

Kali ini kami mendapat dua belas baris, bukan delapan yang kami dapatkan dalam contoh pertama kami.

Kita dapat melihat bahwa kedua Cathys dikembalikan dan ketiga Bills dikembalikan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyelaman Cloud Vendor:PostgreSQL di Google Cloud Platform (GCP)

  2. Aritmatika kolom tanggal dalam kueri PostgreSQL

  3. Mengaudit PostgreSQL Menggunakan pgAudit

  4. daftar tipe Postgres ENUM

  5. Dapatkan baris N terakhir dalam database secara berurutan?