Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Sự khác biệt giữa mệnh đề ON và WHERE trong phép nối bảng SQL

Sự khác biệt chính là khi bạn sử dụng các phép nối khác nhau.

Thông thường, bạn sẽ thấy cùng một kết quả nếu bạn sử dụng các phép nối bên trong, nhưng khi bạn bắt đầu sử dụng phép nối TRÁI, kết quả sẽ thay đổi.

Hãy xem ví dụ sau

SQL Fiddle DEMO

Và hãy xem bài viết sau (rất giải thích)

CHỈNH SỬA cho @ShannonSeverance

Dữ liệu giản đồ và kiểm tra

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');

và Kiểm tra

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. Cách định dạng ngày trong Oracle

  2. cách thêm thứ hai vào dấu thời gian oracle

  3. Độ dài tối đa của tên bảng trong Oracle là bao nhiêu?

  4. Kiểm thử đơn vị cho PL / SQL

  5. Làm thế nào để tạo thủ tục trong Oracle SQL Developer?