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

Oracle db Tham gia so với FROM a, b, c

Không. Oracle, giống như bất kỳ cơ sở dữ liệu quan hệ hợp lý nào khác, hiệu quả hơn khi bạn thực hiện các hoạt động dựa trên tập hợp và khi bạn tham gia hơn là mô phỏng các phép nối theo thủ tục (ví dụ, các vòng con trỏ lồng nhau).

Tuy nhiên, dự đoán của tôi là bạn không thực sự nói về mã thiếu kết nối. Tôi đoán là bạn đang nói về mã sử dụng cú pháp nối khác với bạn đã quen. Cả hai

SELECT a.*
  FROM a
       JOIN b ON (a.a_id = b.a_id)
       JOIN c ON (b.b_id = c.b_id)

SELECT a.*
  FROM a,
       b,
       c
 WHERE a.a_id = b.a_id
   AND b.b_id = c.b_id

là các truy vấn kết hợp với a thành b thành c . Hai truy vấn hoàn toàn giống hệt nhau - trình phân tích cú pháp Oracle sẽ thực sự viết lại nội bộ truy vấn đầu tiên thành truy vấn thứ hai. Sự khác biệt duy nhất là truy vấn đầu tiên sử dụng cú pháp SQL 99 mới hơn để chỉ định các phép nối của nó.

Về mặt lịch sử, Oracle đã tương đối muộn để áp dụng cú pháp SQL 99, có một lượng lớn mã được viết trước khi cú pháp SQL 99 ra đời, và khá nhiều người dùng Oracle thích cú pháp kiểu cũ nếu không có gì khác. Vì tất cả những lý do đó, việc tìm các dự án dựa trên Oracle chỉ sử dụng cú pháp nối cũ hơn là điều tương đối phổ biến. Không có gì sai với điều đó (mặc dù cá nhân tôi thích cú pháp mới hơn).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubuntu ORA-24960:thuộc tính OCI_ATTR_USERNAME lớn hơn độ dài tối đa cho phép là 255

  2. So sánh các chuỗi bỏ qua dấu trong SQL (ORACLE)

  3. Làm cách nào để thoát khỏi regexp_replace trong Oracle?

  4. Cách sử dụng chuỗi Oracle DB mà không làm mất số thứ tự tiếp theo trong trường hợp quay lại

  5. Truy vấn SQL của Oracle để liệt kê tất cả các Lược đồ trong một DB