SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Operator INTERSECT SQLite

Di SQLite, INTERSECT operator digunakan untuk membuat gabungan SELECT pernyataan yang mengembalikan perpotongan hasil SELECT kiri dan kanan pernyataan. Dengan kata lain, ini menggabungkan dua kueri, tetapi hanya mengembalikan baris yang dikembalikan di kedua kueri.

Contoh

Misalkan kita memiliki tabel berikut:

SELECT * FROM Employees;
SELECT * FROM Customers;

Hasil:

EmployeeId  EmployeeName
----------  ------------
1           Bart        
2           Jan         
3           Ava         
4           Rohit       
5           Monish      
6           Monish      
7           Monish      

CustomerId  CustomerName
----------  ------------
1           Mia         
2           Rohit       
3           Peter       
4           Ava         
5           Monish      
6           Monish      

Kita dapat menggunakan INTERSECT operator untuk mengembalikan karyawan yang juga pelanggan:

SELECT EmployeeName FROM Employees
INTERSECT
SELECT CustomerName FROM Customers;

Hasil:

EmployeeName
------------
Ava         
Monish      
Rohit       

Jadi kami hanya mendapatkan nilai yang muncul di Employees tabel yang juga muncul di Customers meja.

Implementasi SQLite dari INTERSECT operator mengembalikan baris yang berbeda saja. Jadi contoh di atas mengembalikan hanya satu baris untuk Monish, meskipun ada beberapa karyawan dan beberapa pelanggan dengan nama itu.

RDBMS lain memungkinkan kami untuk menyertakan duplikat dalam hasil dengan menerima ALLoptional opsional kata kunci dengan INTERSECT operator, tetapi SQLite tidak (setidaknya, tidak pada saat penulisan). Jangan ragu untuk memeriksa dokumentasi SQLite jika ada perubahan.

Kueri Alternatif

Anda bisa mendapatkan hasil yang sama tanpa menggunakan INTERSECT operator. Misalnya, kita dapat menulis ulang contoh pertama kita menjadi ini:

SELECT 
    DISTINCT EmployeeName
FROM Employees e
WHERE EXISTS (SELECT CustomerName FROM Customers c
WHERE e.EmployeeName = c.CustomerName);

Hasil:

EmployeeName
------------
Ava         
Rohit       
Monish      

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite AVG

  2. Buat Batasan CHECK di SQLite

  3. Logcat mengatakan data kolom tidak valid1

  4. Cara menggunakan regexp di sqlite

  5. IllegalStateException:database sudah ditutup (menggunakan ViewPager)