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

Gabung Dalam SQLite

Ringkasan :tutorial ini menunjukkan cara menggunakan klausa gabungan dalam SQLite untuk mengkueri data dari beberapa tabel.

Pengantar klausa gabungan dalam SQLite

Dalam database relasional, data sering didistribusikan di banyak tabel terkait. Sebuah tabel diasosiasikan dengan tabel lain menggunakan kunci asing.

Untuk mengkueri data dari beberapa tabel, gunakan INNER JOIN ayat. INNER JOIN klausa menggabungkan kolom dari tabel yang berkorelasi.

Misalkan Anda memiliki dua tabel:A dan B.

A memiliki kolom a1, a2, dan f. B memiliki kolom b1, b2, dan f. Tabel A menautkan ke tabel B menggunakan kolom kunci asing bernama f.

Berikut ini mengilustrasikan sintaks klausa inner join:

SELECT a1, a2, b1, b2
FROM A
INNER JOIN B on B.f = A.f;Code language: SQL (Structured Query Language) (sql)

Untuk setiap baris dalam tabel A, INNER JOIN klausa membandingkan nilai kolom f dengan nilai kolom f dalam tabel B. Jika nilai kolom f di tabel A sama dengan nilai kolom f di tabel B, maka data dari a1, a2, b1, b2, kolom akan digabungkan dan baris ini termasuk dalam kumpulan hasil.

Dengan kata lain, INNER JOIN klausa mengembalikan baris dari tabel A yang memiliki baris yang sesuai di tabel B.

Logika ini diterapkan jika Anda menggabungkan lebih dari 2 tabel.

Lihat contoh berikut.

Hanya baris dalam tabel A:(a1,1), (a3,3) memiliki baris yang sesuai dalam tabel B (b1,1), (b2,3) yang disertakan dalam kumpulan hasil.

Diagram berikut menggambarkan INNER JOIN klausa:

SQLite INNER JOIN contoh

Mari kita lihat tracks dan albums tabel dalam database sampel. tracks tautan tabel ke albums tabel melalui AlbumId kolom.

Di tracks tabel, AlbumId kolom adalah kunci asing. Dan di albums tabel, AlbumId adalah kunci utama.

Untuk menanyakan data dari kedua tracks dan albums tabel, Anda menggunakan pernyataan berikut:

SELECT
	trackid,
	name,
	title
FROM
	tracks
INNER JOIN albums ON albums.albumid = tracks.albumid;Code language: SQL (Structured Query Language) (sql)

Cobalah

Untuk setiap baris dalam tabel trek, SQLite menggunakan nilai di albumid kolom tracks tabel untuk membandingkan dengan nilai di albumid dari albums meja. Jika SQLite menemukan kecocokan, SQLite akan menggabungkan data baris di kedua tabel dalam kumpulan hasil.

Anda dapat menyertakan AlbumId kolom dari kedua tabel di hasil akhir diatur untuk melihat efeknya.

SELECT
    trackid,
    name,
    tracks.albumid AS album_id_tracks,
    albums.albumid AS album_id_albums,
    title
FROM
    tracks
    INNER JOIN albums ON albums.albumid = tracks.albumid;Code language: SQL (Structured Query Language) (sql)

Cobalah

Gabungan dalam SQLite – contoh 3 tabel

Lihat tabel berikut:tracks albums dan artists

Satu lagu milik satu album dan satu album memiliki banyak lagu. tracks tabel yang terkait dengan albums tabel melalui albumid kolom.

Satu album milik satu artis dan satu artis memiliki satu atau banyak album. albums tautan tabel ke artists tabel melalui artistid kolom.

Untuk mengkueri data dari tabel ini, Anda perlu menggunakan dua klausa gabungan dalam di SELECT pernyataan sebagai berikut:

SELECT
    trackid,
    tracks.name AS track,
    albums.title AS album,
    artists.name AS artist
FROM
    tracks
    INNER JOIN albums ON albums.albumid = tracks.albumid
    INNER JOIN artists ON artists.artistid = albums.artistid;Code language: SQL (Structured Query Language) (sql)

Cobalah

Anda dapat menggunakan klausa WHERE untuk mendapatkan trek dan album artis dengan id 10 seperti pernyataan berikut:

SELECT
	trackid,
	tracks.name AS Track,
	albums.title AS Album,
	artists.name AS Artist
FROM
	tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
INNER JOIN artists ON artists.artistid = albums.artistid
WHERE
	artists.artistid = 10;Code language: SQL (Structured Query Language) (sql)

Cobalah

Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQLite INNER JOIN klausa untuk meminta data dari beberapa tabel.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan Kolom ke Tabel yang Ada di SQLite

  2. Cara memfilter dalam hubungan satu ke banyak dengan kamar android db

  3. Pilihan terbaik untuk menyimpan nama pengguna dan kata sandi di aplikasi android

  4. Menampilkan data dari database menggunakan adaptor dasar dan tampilan daftar

  5. Android- Haruskah saya memeriksa apakah tabel ada di SqliteHelper.onCreate()?