1) Sử dụng là không chính xác giống như trên, nhưng nó là tay ngắn mà cả hai bảng có một cột có cùng tên bạn đang tham gia vào ... xem: http://www.java2s.com/Tutorial/MySQL/0100__Table-Join/ThekeywordUSINGcanbeusedasareplacementfortheONkeywordduringthetableJoins.htm
Đó là khó khăn hơn để đọc theo ý kiến của tôi, vì vậy tôi sẽ đánh vần các tham gia.
3) Không rõ ràng từ truy vấn này, nhưng tôi đoán là không.
2) Giả sử bạn đang tham gia thông qua các bảng khác (không phải tất cả trực tiếp trên companyies) thứ tự trong truy vấn này không thành vấn đề ... thấy sự so sánh dưới đây:
Origional:
SELECT c.*
FROM companies AS c
JOIN users AS u USING(companyid)
JOIN jobs AS j USING(userid)
JOIN useraccounts AS us USING(userid)
WHERE j.jobid = 123
Những gì tôi nghĩ rằng đó là khả năng gợi ý:
SELECT c.*
FROM companies AS c
JOIN users AS u on u.companyid = c.companyid
JOIN jobs AS j on j.userid = u.userid
JOIN useraccounts AS us on us.userid = u.userid
WHERE j.jobid = 123
Bạn đồng uld chuyển đổi các dòng của bạn tham gia công việc & usersaccounts tại đây.
gì nó sẽ trông như thế nào nếu tất cả mọi thứ đã gia nhập vào công ty:
SELECT c.*
FROM companies AS c
JOIN users AS u on u.companyid = c.companyid
JOIN jobs AS j on j.userid = c.userid
JOIN useraccounts AS us on us.userid = c.userid
WHERE j.jobid = 123
này không thực sự có ý nghĩa logic ... trừ khi mỗi người dùng có công ty riêng của họ.
4.) Sự kỳ diệu của sql là bạn chỉ có thể hiển thị các cột nhất định, nhưng tất cả chúng đều của họ để phân loại và lọc ...
nếu bạn trở
SELECT c.*, j.jobid....
bạn có thể thấy rõ những gì nó đã được lọc trên, nhưng máy chủ cơ sở dữ liệu không quan tâm nếu bạn xuất một hàng hay không để lọc.
Nguồn
2008-10-23 04:17:23
"SQL không xác định thứ tự 'trong đó JOINS được thực hiện" là sai. Xem https://dev.mysql.com/doc/refman/5.5/en/nested-join-optimization.html trong "Các ví dụ trước minh họa các điểm sau:" –
Tôi nghĩ rằng liên kết đó không rõ ràng về việc chứng minh quan điểm của bạn. Tuy nhiên, tôi đã viết câu trả lời gần 10 năm trước nên tôi không nhớ tại sao tôi lại nói vậy. Nhưng tôi có thể đưa ra giả thuyết rằng đó là điều tôi đã hiểu chuẩn SQL. – staticsan