Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perbedaan antara klausa ON dan WHERE dalam tabel SQL bergabung

Perbedaan utamanya adalah ketika Anda menggunakan gabungan yang berbeda.

Biasanya Anda akan melihat hasil yang sama jika Anda menggunakan gabungan dalam, tetapi setelah Anda mulai menggunakan gabungan KIRI, hasilnya akan berubah.

Perhatikan contoh berikut

SQL Fiddle DEMO

Dan lihat artikel berikut (sangat jelas)

EDIT untuk @ShannonSeverance

Skema dan Data uji

CREATE TABLE Table1 (
  ID INT,
  Val VARCHAR(20)
 );

INSERT INTO Table1 VALUES (1,'a');
INSERT INTO Table1 VALUES (2,'a');

CREATE TABLE Table2 (
  ID INT,
  Val VARCHAR(20)
 );

INSERT INTO Table2 VALUES (1,'a');

dan Tes

SELECT t1.ID,
t1.Val,
t2.ID ID2,
t2.Val Val2
FROM Table1 t1 INNER JOIN
Table2 t2 ON t1.ID = t2.ID AND t1.Val = t2.Val;

SELECT  t1.ID,
t1.Val,
t2.ID ID2,
t2.Val Val2
FROM Table1 t1,Table2 t2 
WHERE t1.ID = t2.ID
 AND t1.Val = t2.Val;

SELECT  t1.ID,
t1.Val,
t2.ID ID2,
t2.Val Val2
FROM Table1 t1 LEFT JOIN
Table2 t2 ON t1.ID = t2.ID  AND t1.Val = t2.Val;

SELECT  t1.ID,
t1.Val,
t2.ID ID2,
t2.Val Val2
FROM Table1 t1 LEFT JOIN
Table2 t2 ON t1.ID = t2.ID  
WHERE t1.Val = t2.Val;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Mendapatkan Tanggal Saat Ini di PL/SQL?

  2. Biaya Dalam Memori Oracle

  3. Bagaimana Cara Mencetak 1 hingga 10 Tanpa Menggunakan Loop di PL/SQL?

  4. Saya tidak mengerti Collation? (Mysql, RDBMS, Kumpulan karakter)

  5. ORA-30926:tidak bisa mendapatkan set baris yang stabil di tabel sumber