MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Operator UNION MariaDB Dijelaskan

Di MariaDB, UNION operator menggabungkan hasil dari beberapa SELECT pernyataan menjadi satu set hasil.

Sintaks

Sintaks resminya seperti ini:

SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]
[ORDER BY [column [, column ...]]]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]

Dari MariaDB 10.4.0, tanda kurung dapat digunakan untuk menentukan prioritas.

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 |
+-------------+
| Warren      |
| Ben         |
| Cathy       |
| Bill        |
| Faye        |
| Jet         |
| Spike       |
| Ein         |
+-------------+
8 rows in set (0.003 sec)

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 |
+-------------+
| Warren      |
| Ben         |
| Cathy       |
| Bill        |
| Faye        |
| Jet         |
| Spike       |
| Ein         |
+-------------+
8 rows in set (0.004 sec)

Jadi kami mendapatkan hasil yang sama dengan yang kami dapatkan tanpa DISTINCT operator.

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 in set (0.002 sec)

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. Cara Menambahkan AM/PM ke Nilai Waktu atau Datetime di MariaDB

  2. Bagaimana SEKARANG () Bekerja di MariaDB

  3. Enkripsi Basis Data:Mengapa dan Di Mana Anda Perlu Memiliki Enkripsi Data

  4. MariaDB ROWNUM() Dijelaskan

  5. Menjalankan Vitess dan MySQL dengan ClusterControl