SQL JOIN
Bagian I
SQL BERGABUNG (SQL JOIN)
Kata kunci BERGABUNG digunakan dalam sebuah pernyataan SQL untuk query data dari dua atau lebih tabel, didasarkan pada hubungan antara kolom tertentu dalam tabel ini.
Tabel dalam database sering berhubungan satu sama lain dengan kunci.
Kunci utama adalah kolom (atau kombinasi dari kolom) dengan nilai unik untuk setiap baris. Setiap nilai kunci primer harus unik dalam tabel. Tujuannya adalah untuk mengikat data bersama-sama, di meja, tanpa mengulangi semua data di setiap meja.
Lihatlah tabel "Orang":
P_Id |
LastName |
FirstName |
Alamat |
Kota |
1 |
Hansen |
Ola |
Timoteivn 10 |
Sandnes |
2 |
Svendson |
Tove |
Borgvn 23 |
Sandnes |
3 |
Pettersen |
Kari |
Storgt 20 |
Stavanger |
Perhatikan bahwa "P_Id" kolom adalah kunci utama dalam tabel "Orang". Ini berarti bahwa tidak ada dua baris dapat memiliki P_Id yang sama. P_Id membedakan dua orang bahkan jika mereka memiliki nama yang sama.
Selanjutnya, kita memiliki "Perintah" tabel:
O_Id |
OrderNo |
P_Id |
1 |
77895 |
3 |
2 |
44678 |
3 |
3 |
22456 |
1 |
4 |
24562 |
1 |
5 |
34764 |
15 |
Perhatikan bahwa "O_Id" kolom adalah kunci utama dalam tabel "Orders" dan bahwa "P_Id" kolom mengacu pada orang-orang dalam tabel "Orang" tanpa menggunakan nama mereka.
Perhatikan bahwa hubungan antara dua tabel di atas adalah "P_Id" kolom.
SQL yang berbeda Bergabung
Sebelum kita lanjutkan dengan contoh-contoh, kami akan memberikan daftar jenis BERGABUNG dapat Anda gunakan, dan perbedaan di antara mereka.
- BERGABUNG : Kembali baris ketika ada setidaknya satu pertandingan di kedua tabel
- LEFT JOIN : Kembali semua baris dari tabel kiri, bahkan jika tidak ada pertandingan di tabel kanan
- RIGHT JOIN : Kembali semua baris dari tabel kanan, bahkan jika tidak ada pertandingan di tabel kiri
- FULL JOIN : baris Kembali ketika ada pertandingan di salah satu meja
SQL FULL JOIN Kata Kunci
The FULL JOIN baris kata kunci kembali ketika ada pertandingan di salah satu meja.
SQL FULL JOIN Sintaks
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
SQL FULL JOIN Contoh
The "Orang" tabel:
P_Id |
LastName |
FirstName |
Alamat |
Kota |
1 |
Hansen |
Ola |
Timoteivn 10 |
Sandnes |
2 |
Svendson |
Tove |
Borgvn 23 |
Sandnes |
3 |
Pettersen |
Kari |
Storgt 20 |
Stavanger |
The "Perintah" tabel:
O_Id |
OrderNo |
P_Id |
1 |
77895 |
3 |
2 |
44678 |
3 |
3 |
22456 |
1 |
4 |
24562 |
1 |
5 |
34764 |
15 |
Sekarang kita ingin daftar semua orang dan pesanan mereka, dan semua perintah dengan orang-orang mereka.
Kami menggunakan pernyataan SELECT berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
Hasil-set akan terlihat seperti ini:
LastName |
FirstName |
OrderNo |
Hansen |
Ola |
22456 |
Hansen |
Ola |
24562 |
Pettersen |
Kari |
77895 |
Pettersen |
Kari |
44678 |
Svendson |
Tove |
|
|
|
34764 |
Kata kunci BERGABUNG LENGKAP mengembalikan semua baris dari tabel kiri (Orang), dan semua baris dari tabel kanan (Pesanan). Jika ada baris dalam "Orang" yang tidak memiliki pertandingan di "Perintah", atau jika ada baris dalam "Pesanan" yang tidak memiliki pertandingan di "Orang", baris itu akan terdaftar juga.
SQL INNER JOIN Kata Kunci
Kata kunci INNER JOIN mengembalikan baris ketika ada setidaknya satu pertandingan di kedua tabel.
SQL INNER JOIN Sintaks
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
PS: INNER JOIN sama dengan JOIN.
SQL INNER JOIN Contoh
The "Orang" tabel:
P_Id |
LastName |
FirstName |
Alamat |
Kota |
1 |
Hansen |
Ola |
Timoteivn 10 |
Sandnes |
2 |
Svendson |
Tove |
Borgvn 23 |
Sandnes |
3 |
Pettersen |
Kari |
Storgt 20 |
Stavanger |
P_Id |
LastName |
FirstName |
Alamat |
Kota |
1 |
Hansen |
Ola |
Timoteivn 10 |
Sandnes |
2 |
Svendson |
Tove |
Borgvn 23 |
Sandnes |
3 |
Pettersen |
Kari |
Storgt 20 |
Stavanger |
The "Perintah" tabel:
O_Id |
OrderNo |
P_Id |
1 |
77895 |
3 |
2 |
44678 |
3 |
3 |
22456 |
1 |
4 |
24562 |
1 |
5 |
34764 |
15 |
Sekarang kita ingin daftar semua orang dan pesanan mereka - jika ada, dari tabel di atas.
Kami menggunakan pernyataan SELECT berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
Hasil-set akan terlihat seperti ini:
LastName |
FirstName |
OrderNo |
Hansen |
Ola |
22456 |
Hansen |
Ola |
24562 |
Pettersen |
Kari |
77895 |
Pettersen |
Kari |
44678 |
Svendson |
Tove |
|
Kata kunci BERGABUNG KIRI mengembalikan semua baris dari tabel kiri (Orang), bahkan jika tidak ada pertandingan di tabel kanan (Pesanan).
SQL RIGHT JOIN Kata Kunci
Kata kunci BERGABUNG KANAN mengembalikan semua baris dari tabel kanan (table_name2), bahkan jika tidak ada pertandingan di tabel kiri (table_name1).
SQL RIGHT JOIN Sintaks
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
PS: Dalam beberapa database RIGHT JOIN disebut KANAN Outer JOIN.
SQL RIGHT JOIN Contoh
The "Orang" tabel:
P_Id |
LastName |
FirstName |
Alamat |
Kota |
1 |
Hansen |
Ola |
Timoteivn 10 |
Sandnes |
2 |
Svendson |
Tove |
Borgvn 23 |
Sandnes |
3 |
Pettersen |
Kari |
Storgt 20 |
Stavanger |
The "Perintah" tabel:
O_Id |
OrderNo |
P_Id |
1 |
77895 |
3 |
2 |
44678 |
3 |
3 |
22456 |
1 |
4 |
24562 |
1 |
5 |
34764 |
15 |
Sekarang kita ingin daftar semua perintah dengan orang-orang yang mengandung - jika ada, dari tabel di atas.
Kami menggunakan pernyataan SELECT berikut:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
Hasil-set akan terlihat seperti ini:
LastName |
FirstName |
OrderNo |
Hansen |
Ola |
22456 |
Hansen |
Ola |
24562 |
Pettersen |
Kari |
77895 |
Pettersen |
Kari |
44678 |
|
|
34764 |
Kata kunci BERGABUNG KANAN mengembalikan semua baris dari tabel kanan (Pesanan), bahkan jika tidak ada pertandingan di tabel kiri (Orang).
(www.w3schools.com/sql)