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

SQLite CROSS JOIN dengan Contoh Praktis

Ringkasan :dalam tutorial ini, Anda akan mempelajari cara menggunakan SQLite CROSS JOIN untuk menggabungkan dua atau lebih kumpulan hasil dari beberapa tabel.

Pengantar SQLite CROSS JOIN klausa

Jika Anda menggunakan LEFT JOIN , INNER JOIN , atau CROSS JOIN tanpa ON atau USING klausa, SQLite menghasilkan produk Cartesian dari tabel yang terlibat. Jumlah baris dalam produk Cartesian adalah produk dari jumlah baris di setiap tabel yang terlibat.

Misalkan, kita memiliki dua tabel A dan B. Pernyataan berikut melakukan cross join dan menghasilkan produk kartesius dari baris dari tabel A dan B.

SELECT *
FROM A JOIN B;Code language: SQL (Structured Query Language) (sql)
SELECT *
FROM A
INNER JOIN B;Code language: SQL (Structured Query Language) (sql)
SELECT *
FROM A
CROSS JOIN B;Code language: SQL (Structured Query Language) (sql)
SELECT * 
FROM A, B;Code language: SQL (Structured Query Language) (sql)

Misalkan, tabel A memiliki N baris dan tabel B memiliki M baris, CROSS JOIN dari dua tabel ini akan menghasilkan kumpulan hasil yang berisi NxM baris.

Bayangkan jika Anda memiliki tabel ketiga C dengan K baris, hasil dari CROSS JOIN klausa dari ketiga tabel ini akan berisi NxMxK baris, yang mungkin sangat besar. Oleh karena itu, Anda harus sangat berhati-hati saat menggunakan CROSS JOIN klausa.

Anda menggunakan INNER JOIN dan LEFT JOIN klausa lebih sering daripada CROSS JOIN ayat. Namun, Anda akan menemukan CROSS JOIN klausa sangat berguna dalam beberapa kasus.

Misalnya, ketika Anda ingin memiliki matriks yang memiliki dua dimensi yang diisi dengan data lengkap seperti data anggota dan tanggal dalam database keanggotaan. Anda ingin memeriksa petugas anggota untuk semua tanggal yang relevan. Dalam hal ini, Anda dapat menggunakan CROSS JOIN klausa seperti pernyataan berikut:

SELECT name,
       date 
FROM members
CROSS JOIN dates;Code language: SQL (Structured Query Language) (sql)

SQLite CROSS JOIN contoh klausa

Pernyataan berikut membuat ranks dan suits tabel yang menyimpan peringkat dan setelan untuk setumpuk kartu dan memasukkan data lengkap ke dalam dua tabel ini.

CREATE TABLE ranks (
    rank TEXT NOT NULL
);

CREATE TABLE suits (
    suit TEXT NOT NULL
);

INSERT INTO ranks(rank) 
VALUES('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('10'),('J'),('Q'),('K'),('A');

INSERT INTO suits(suit) 
VALUES('Clubs'),('Diamonds'),('Hearts'),('Spades');Code language: SQL (Structured Query Language) (sql)

Pernyataan berikut menggunakan CROSS JOIN klausa untuk mengembalikan setumpuk data kartu yang lengkap:

SELECT rank,
       suit
  FROM ranks
       CROSS JOIN
       suits
ORDER BY suit;Code language: SQL (Structured Query Language) (sql)
peringkat setelan
2 Klub
3 Klub
4 Klub
5 Klub
6 Klub
7 Klub
8 Klub
9 Klub
10 Klub
J Klub
Q Klub
K Klub
A Klub
2 Berlian
3 Berlian
4 Berlian
5 Berlian
6 Berlian
7 Berlian
8 Berlian
9 Berlian
10 Berlian
J Berlian
Q Berlian
K Berlian
A Berlian
2 Hati
3 Hati
4 Hati
5 Hati
6 Hati
7 Hati
8 Hati
9 Hati
10 Hati
J Hati
Q Hati
K Hati
A Hati
2 Sekop
3 Sekop
4 Sekop
5 Sekop
6 Sekop
7 Sekop
8 Sekop
9 Sekop
10 Sekop
J Sekop
Q Sekop
K Sekop
A Sekop

Dalam tutorial ini, Anda telah mempelajari cara menggunakan klausa SQLite CROSS JOIN untuk menghasilkan produk Cartesian dari beberapa tabel yang terlibat dalam gabungan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 Cara Mengganti NULL dengan “N/A” di SQLite

  2. Bagaimana cara menyimpan dan mengambil array byte (data gambar) ke dan dari database SQLite?

  3. Bagaimana saya bisa membuat daftar Array dengan data kursor di Android

  4. Bagaimana cara memperbarui dan menghapus daftar Lihat data dalam database SQLite dengan pendengar klik?

  5. listview menampilkan data dari database di android