Pelatihan
Modul
Gabungkan beberapa tabel dengan JOIN di T-SQL - Training
Gabungkan beberapa tabel dengan JOIN di T-SQL
Browser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Berlaku untuk: Databricks SQL
Databricks Runtime
Menggabungkan baris dari referensi left_table sebelumnya dengan referensi right_table berdasarkan kriteria gabungan.
{ [ join_type ] JOIN right_table_reference [ join_criteria ] |
NATURAL join_type JOIN right_table_reference |
CROSS JOIN right_table_reference }
join_type
{ [ INNER ] |
LEFT [ OUTER ] |
[ LEFT ] SEMI |
RIGHT [ OUTER ] |
FULL [ OUTER ] |
[ LEFT ] ANTI |
CROSS }
join_criteria
{ ON boolean_expression |
USING ( column_name [, ...] ) }
Referensi tabel di sisi kanan penggabungan.
join_type
Jenis penggabungan.
[ INNER ]
Mengembalikan baris yang memiliki nilai yang cocok di kedua referensi tabel. Jenis gabungan default.
KIRI [ LUAR ]
Mengembalikan semua nilai dari referensi tabel kiri dan nilai yang cocok dari referensi tabel kanan, atau menambahkan NULL
jika tidak ada kecocokan.
Ini juga disebut sebagai gabungan luar kiri .
KANAN [ LUAR ]
Mengembalikan semua nilai dari referensi tabel kanan dan nilai yang cocok dari referensi tabel kiri, atau menambahkan NULL
jika tidak ada kecocokan.
Ini juga disebut sebagai gabungan luar kanan antara dan.
PENUH [LUAR]
Mengembalikan semua nilai dari kedua relasi, menambahkan nilai NULL
di sisi yang tidak memiliki kecocokan.
Ini juga disebut sebagai gabungan luar lengkap .
[ KIRI ] SEMI
Mengembalikan nilai dari sisi kiri referensi tabel yang memiliki kecocokan dengan kanan. Ini juga disebut sebagai gabungan semi kiri .
[ KIRI ] ANTI
Mengembalikan nilai dari referensi tabel kiri yang tidak cocok dengan referensi tabel kanan. Ini juga disebut sebagai kiri anti gabungan.
CROSS JOIN
Mengembalikan produk Cartesian dari dua relasi.
NATURAL
Menunjukkan bahwa baris dari dua relasi akan secara implisit dicocokkan berdasarkan kesetaraan untuk semua kolom dengan nama yang sama.
join_criteria
Secara opsional menentukan bagaimana baris dari satu referensi tabel dikombinasikan dengan baris referensi tabel lain.
Peringatan
Jika Anda menghilangkan join_criteria
semantik join_type
mana pun menjadi CROSS JOIN
.
ON boolean_expression
Ekspresi dengan jenis BOOLEAN kembali yang menentukan bagaimana baris dari dua relasi dicocokkan. Jika hasilnya benar baris dianggap cocok.
MENGGUNAKAN ( nama_kolom [, …] )
Mencocokkan baris dengan membandingkan kesetaraan untuk daftar kolom column_name
yang harus ada di kedua relasi.
Nama sementara dengan daftar pengidentifikasi kolom opsional.
Saat Anda menentukan USING
atau NATURAL
, SELECT *
hanya akan menampilkan satu kemunculan untuk setiap kolom yang digunakan untuk mencocokkan terlebih dahulu, diikuti oleh kolom sebelah kiri, lalu tabel gabungan kanan tidak termasuk kolom yang digabungkan.
SELECT * FROM first JOIN second USING (a, b)
setara dengan:
SELECT first.a, first.b,
first.* EXCEPT(a, b),
second.* EXCEPT(a, b)
FROM first JOIN second ON first.a = second.a AND first.b = second.b
-- Use employee and department tables to demonstrate different type of joins.
> CREATE TEMP VIEW employee(id, name, deptno) AS
VALUES(105, 'Chloe', 5),
(103, 'Paul' , 3),
(101, 'John' , 1),
(102, 'Lisa' , 2),
(104, 'Evan' , 4),
(106, 'Amy' , 6);
> CREATE TEMP VIEW department(deptno, deptname) AS
VALUES(3, 'Engineering'),
(2, 'Sales' ),
(1, 'Marketing' );
-- Use employee and department tables to demonstrate inner join.
> SELECT id, name, employee.deptno, deptname
FROM employee
INNER JOIN department ON employee.deptno = department.deptno;
103 Paul 3 Engineering
101 John 1 Marketing
102 Lisa 2 Sales
-- Use employee and department tables to demonstrate left join.
> SELECT id, name, employee.deptno, deptname
FROM employee
LEFT JOIN department ON employee.deptno = department.deptno;
105 Chloe 5 NULL
103 Paul 3 Engineering
101 John 1 Marketing
102 Lisa 2 Sales
104 Evan 4 NULL
106 Amy 6 NULL
-- Use employee and department tables to demonstrate right join.
> SELECT id, name, employee.deptno, deptname
FROM employee
RIGHT JOIN department ON employee.deptno = department.deptno;
103 Paul 3 Engineering
101 John 1 Marketing
102 Lisa 2 Sales
-- Use employee and department tables to demonstrate full join.
> SELECT id, name, employee.deptno, deptname
FROM employee
FULL JOIN department ON employee.deptno = department.deptno;
101 John 1 Marketing
106 Amy 6 NULL
103 Paul 3 Engineering
105 Chloe 5 NULL
104 Evan 4 NULL
102 Lisa 2 Sales
-- Use employee and department tables to demonstrate cross join.
> SELECT id, name, employee.deptno, deptname
FROM employee
CROSS JOIN department;
105 Chloe 5 Engineering
105 Chloe 5 Marketing
105 Chloe 5 Sales
103 Paul 3 Engineering
103 Paul 3 Marketing
103 Paul 3 Sales
101 John 1 Engineering
101 John 1 Marketing
101 John 1 Sales
102 Lisa 2 Engineering
102 Lisa 2 Marketing
102 Lisa 2 Sales
104 Evan 4 Engineering
104 Evan 4 Marketing
104 Evan 4 Sales
106 Amy 4 Engineering
106 Amy 4 Marketing
106 Amy 4 Sales
-- Use employee and department tables to demonstrate semi join.
> SELECT *
FROM employee
SEMI JOIN department ON employee.deptno = department.deptno;
103 Paul 3
101 John 1
102 Lisa 2
-- Use employee and department tables to demonstrate anti join.
> SELECT *
FROM employee
ANTI JOIN department ON employee.deptno = department.deptno;
105 Chloe 5
104 Evan 4
106 Amy 6
-- Use employee and department tables to demonstrate lateral inner join.
> SELECT id, name, deptno, deptname
FROM employee
JOIN LATERAL (SELECT deptname
FROM department
WHERE employee.deptno = department.deptno);
103 Paul 3 Engineering
101 John 1 Marketing
102 Lisa 2 Sales
-- Use employee and department tables to demonstrate lateral left join.
> SELECT id, name, deptno, deptname
FROM employee
LEFT JOIN LATERAL (SELECT deptname
FROM department
WHERE employee.deptno = department.deptno);
105 Chloe 5 NULL
103 Paul 3 Engineering
101 John 1 Marketing
102 Lisa 2 Sales
104 Evan 4 NULL
106 Amy 6 NULL
Pelatihan
Modul
Gabungkan beberapa tabel dengan JOIN di T-SQL - Training
Gabungkan beberapa tabel dengan JOIN di T-SQL
Dokumentasi
Bekerja dengan parameter kueri - Azure Databricks - Databricks SQL
Pelajari tentang parameter kueri di Azure Databricks.
SELECT (subkueri) - Azure Databricks - Databricks SQL
Pelajari cara menggunakan sintaks subpilih dalam bahasa SQL di Databricks SQL dan Databricks Runtime.
Operator set - Azure Databricks - Databricks SQL
Pelajari cara menggunakan operator set EXCEPT, MINUS, INTERSECT, dan UNION dari bahasa SQL di Databricks SQL dan Databricks Runtime.