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

Khả năng hiển thị khác biệt trong tham gia truy vấn con và vị trí

Trong

FROM working_place wp 
JOIN working_place_worker wpw ON ... 
WHERE ...

ON mệnh đề đề cập đến chỉ vào hai bảng tham gia tham gia, cụ thể là wpwpw . Tên từ truy vấn bên ngoài không hiển thị với nó.

WHERE mệnh đề (và người anh em họ của nó HAVING là phương tiện mà truy vấn bên ngoài có tương quan với truy vấn con. Các tên từ truy vấn bên ngoài hiển thị cho nó.

Để dễ nhớ,

  • ON là về THAM GIA, hai bảng liên quan như thế nào để tạo thành một hàng (hoặc các hàng)
  • WHERE là về tiêu chí lựa chọn, bài kiểm tra mà các hàng phải vượt qua

Trong khi trình phân tích cú pháp SQL sẽ thừa nhận các ký tự (không phải là tên cột) trong mệnh đề ON, nó sẽ vẽ dòng tại các tham chiếu đến các cột bên ngoài phép nối. Bạn có thể coi điều này như một ân huệ bảo vệ chống lại sai sót.

Trong trường hợp của bạn, wo bảng không phải là một phần của JOIN , và bị từ chối. Nó một phần của toàn bộ truy vấn và được WHERE nhận dạng .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn từng hàng và chèn vào bảng khác

  2. Sử dụng một câu lệnh trường hợp trong một ràng buộc kiểm tra

  3. Khó khăn SQL JOIN - dường như cần một cách giới hạn các hàng trong một điều kiện nối

  4. Cách tạo quy trình lưu trữ PL / SQL với tham số trong cơ sở dữ liệu Oracle

  5. Làm cách nào để chèn dấu thời gian trong Oracle?