Latest web development tutorials

SQLite Bergabung

SQLiteBergabung klausul untuk menggabungkan dua atau lebih tabel dalam catatan database.BERGABUNG adalah nilai umum dengan menggabungkan dua bidang di sarana meja.

SQL mendefinisikan tiga jenis utama dari koneksi:

  • Lintas menghubungkan - LINTAS BERGABUNG

  • En - INNER JOIN

  • koneksi eksternal - Outer BERGABUNG

Sebelum kita melanjutkan, mari kita asumsikan bahwa ada dua meja PERUSAHAAN dan DEPARTMENT. Kami telah melihat digunakan untuk mengisi PERUSAHAAN pernyataan meja INSERT. Sekarang mari kita asumsikan catatan tabel PERUSAHAAN tercantum di bawah ini:

ID NAMA UMUR ALAMAT GAJI
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20.000,0
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norwegia 20.000,0
4 Mark 25 Rich-Mond 65.000,0
5 David 27 Texas 85.000,0
6 Kim 22 South-Hall 45.000,0
7 James 24 Houston 10.000,0

meja lain adalah DEPARTMENT, didefinisikan sebagai berikut:

CREATE TABLE DEPARTMENT (
   ID INT PRIMARY KEY NOT NULL,
   DEPT CHAR (50) NOT NULL,
   Emp_id INT NOT NULL
);

Berikut ini adalah tabel DEPARTMENT pernyataan INSERT diisi:

INSERT INTO DEPARTMENT (ID, DEPT, emp_id)
NILAI (1, 'Penagihan IT', 1);

INSERT INTO DEPARTMENT (ID, DEPT, emp_id)
NILAI (2, 'Teknik', 2);

INSERT INTO DEPARTMENT (ID, DEPT, emp_id)
NILAI (3, 'Keuangan', 7);

Akhirnya, kami memiliki daftar berikut catatan dalam tabel DEPARTMENT:

ID DEPT emp_id
---------- ---------- ----------
1 Penagihan 1
2 bidang teknik 2
3 Keuangan 7

Lintas menghubungkan - LINTAS BERGABUNG

Cross-connect (LINTAS BERGABUNG) setiap baris dari tabel pertama dengan setiap baris dari tabel kedua untuk mencocokkan. Jika kedua tabel input kolom x dan y masing-masing, tabel hasil memiliki x + y kolom. Karena cross-connect (LINTAS BERGABUNG) dapat menghasilkan meja yang sangat besar, Anda harus berhati-hati ketika menggunakan mereka hanya jika diperlukan.

Berikut adalah sintaks untuk cross-connect (LINTAS BERGABUNG) dari:

SELECT ... FROM table1 LINTAS BERGABUNG table2 ...

Berdasarkan tabel di atas, kita dapat menulis lintas menghubungkan (CROSS JOIN), sebagai berikut:

sqlite> SELECT emp_id, NAMA, DEPT DARI PERUSAHAAN LINTAS BERGABUNG DEPARTMENT;

Query di atas akan menghasilkan hasil sebagai berikut:

Emp_id NAME DEPT
---------- ---------- ----------
Penagihan 1 Paul IT
2 Paul bidang teknik
7 Paul Keuangan
Penagihan 1 Allen IT
2 Allen bidang teknik
7 Allen Keuangan
Penagihan 1 Teddy IT
2 Teddy bidang teknik
7 Teddy Keuangan
Penagihan 1 Mark IT
2 Mark bidang teknik
7 Mark Keuangan
Penagihan 1 David IT
2 David bidang teknik
7 David Keuangan
Penagihan 1 Kim IT
2 Kim bidang teknik
7 Kim Keuangan
Penagihan 1 James IT
2 James bidang teknik
7 James Keuangan

En - INNER JOIN

hubungan batin (INNER JOIN) untuk membuat tabel hasil baru menggabungkan dua tabel (Table1 dan Tabel 2) bergabung nilai kolom predikat. Query akan table1 dan table2 di setiap baris dalam setiap baris dibandingkan untuk menemukan semua baris yang memenuhi bergabung pasang predikat yang cocok. Ketika puas bergabung predikat nilai kolom A dan B masing-masing baris yang cocok dari hasilnya akan digabung menjadi satu baris.

hubungan batin (INNER JOIN) adalah jenis yang paling umum dari koneksi adalah jenis koneksi default. kata kunci INNER adalah opsional.

Berikut adalah sintaks untuk batin bergabung (INNER JOIN) dari:

SELECT ... FROM table1 [INNER] BERGABUNG table2 ON conditional_expression ...

Untuk menghindari redundansi dan menjaga kata-kata yang singkat, Anda dapat menggunakan pernyataan di koneksi ekspresiMENGGUNAKAN (INNER JOIN) kondisi.Ungkapan ini menetapkan daftar satu atau lebih kolom:

SELECT ... FROM table1 BERGABUNG table2 MENGGUNAKAN (column1, ...) ...

hubungan alami (NATURAL JOIN) mirip denganBERGABUNG ... MENGGUNAKAN, tapi akan nilai yang sama antara nilai dari dua tabel di masing-masing kolom secara otomatis menguji keberadaan dari:

SELECT ... FROM table1 table2 ALAMI BERGABUNG ...

Berdasarkan tabel di atas, kita dapat menulis bergabung batin (INNER JOIN), sebagai berikut:

sqlite> emp_id SELECT, NAMA, DEPT DARI PERUSAHAAN INNER JOIN DEPARTMENT
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

Query di atas akan menghasilkan hasil sebagai berikut:

Emp_id NAME DEPT
---------- ---------- ----------
Penagihan 1 Paul IT
2 Allen bidang teknik
7 James Keuangan

koneksi eksternal - Outer BERGABUNG

koneksi eksternal (Outer JOIN) adalah bergabung batin (INNER JOIN) ekstensi. Meskipun SQL standar mendefinisikan tiga jenis luar bergabung: KIRI, KANAN, FULL, tapi SQLite mendukung hanyatersisa luar bergabung (KIRI Outer JOIN).

koneksi eksternal (Outer JOIN) menyatakan kondisi dan metode hubungan batin (INNER JOIN) adalah sama, penggunaan ON, MENGGUNAKAN kata kunci ALAMI atau ekspresi. Hasil awal tabel dihitung dengan cara yang sama. Setelah perhitungan selesai koneksi utama, koneksi eksternal (Outer JOIN) dari satu atau dua tabel tidak terhubung ke setiap baris dalam penggabungan, luar bergabung kolom dengan nilai NULL, melampirkannya ke tabel hasil.

Berikut adalah sintaks untuk kiri luar bergabung (KIRI Outer JOIN) dari:

SELECT ... FROM table1 KIRI Outer JOIN table2 ON conditional_expression ...

Untuk menghindari redundansi dan menjaga kata-kata yang singkat, Anda dapat menggunakan ekspresiMENGGUNAKAN pernyataan luar bergabung (Outer JOIN) kondisi.Ungkapan ini menetapkan daftar satu atau lebih kolom:

SELECT ... FROM table1 KIRI Outer JOIN table2 MENGGUNAKAN (column1, ...) ...

Berdasarkan tabel di atas, kita dapat menulis koneksi eksternal (Outer JOIN), sebagai berikut:

sqlite> SELECT emp_id, NAMA, DEPT DARI PERUSAHAAN KIRI Outer JOIN DEPARTMENT
        ON COMPANY.ID = DEPARTMENT.EMP_ID;

Query di atas akan menghasilkan hasil sebagai berikut:

Emp_id NAME DEPT
---------- ---------- ----------
Penagihan 1 Paul IT
2 Allen bidang teknik
            Teddy
            tanda
            David
            Kim
7 James Keuangan