2013-01-23 37 views
6

Điều gì tốt hơn ở giữa khi tham gia một bảng hoặc chọn từ nhiều bảng?Tham gia các bảng hoặc để chọn từ nhiều bảng

Ví dụ, cho phép giả kịch bản tương tự như sau:

Sử dụng tham gia:

SELECT COALESCE(SUM(SALARY),0) FROM X 
JOIN Y ON X.X_ID=Y.Y_X_ID 

HOẶC

By chọn từ nhiều bảng

SELECT COALESCE(SUM(SALARY),0) FROM X, Y 
WHERE X.X_ID=Y.Y_X_ID 
+7

Chúng giống nhau. Xem các kế hoạch thực hiện. Thứ hai cũng là một tham gia (là Oracle syle tham gia). Tuy nhiên, bạn nên sử dụng kiểu đầu tiên rõ ràng hơn và được sử dụng trên toàn thế giới. –

+4

Nói về ANSI và khả năng tương thích, hãy cố thoát ra khỏi thói quen sử dụng Nvl(). Coalesce() là hàm chuẩn, và nó linh hoạt hơn và một số trường hợp hoạt động tốt hơn Nvl() do đánh giá ngắn mạch –

+0

Cảm ơn các bạn đã đề xuất. – hsuk

Trả lời

1

Bạn nên sử dụng THAM GIA cú pháp cho rất nhiều lý do có thể tìm thấy here.

Hơn nữa cú pháp này có lợi thế để đưa ra một số gợi ý cho trình tối ưu hóa truy vấn (trong khi tính toán trọng số, trọng số được tính toán trực tiếp bởi các sự kiện được đề cập trong cú pháp này được ưu tiên hơn các giá trị khác).

1

Cả hai đều tham gia. Đầu tiên là một tham gia rõ ràng và phần thứ hai là một tham gia ngầm định và là một mẫu đối tượng SQL.

Điều thứ hai là xấu bởi vì rất dễ dàng để tham gia chéo ngẫu nhiên. Nó cũng là xấu bởi vì khi bạn muốn tham gia chéo, nó không phải là rõ ràng nếu bạn đã muốn điều đó hoặc nếu bạn có một tình cờ.

Hơn nữa trong phong cách thứ hai nếu bạn muốn chuyển đổi thành kết nối bên ngoài, bạn cần phải thay đổi tất cả các kết nối trong truy vấn hoặc rủi ro nhận được kết quả không chính xác. Vì vậy, phong cách thứ hai khó duy trì hơn.

Tham gia giải nghĩa được thiết lập trong thế kỷ trước, tại sao mọi người vẫn đang sử dụng các lỗi tham gia ẩn và khó duy trì tiềm ẩn nằm ngoài tôi.

2

chủ yếu là tham gia được sử dụng để lấy dữ liệu từ nhiều bảng như vậy trong sql có 3 loại tham gia có sẵn

  1. Equi tham gia-bên tham gia bên ngoài tham gia trái đúng đầy đủ
  2. Non equi tham gia
  3. Tự tham gia
  4. Tham gia chéo
Các vấn đề liên quan