Ngoài các câu trả lời ở trên, một sự khác biệt quan trọng là mệnh đề ON duy trì các cột từ mỗi bảng được nối một cách riêng biệt, mà mệnh đề USING hợp nhất các cột từ các bảng đã nối vào một cột đơn. Điều này có thể quan trọng nếu, ví dụ, bạn muốn giữ lại các hàng trong tập kết quả của bạn chỉ khi một hàng phù hợp không tồn tại trong một trong các bảng được nối. Để làm điều này bạn sẽ thường sử dụng một OUTER JOIN cùng với một điều kiện trong mệnh đề WHERE, chẳng hạn như
SELECT t1.*
FROM TABLE_1 t1
LEFT OUTER JOIN TABLE_2 t2
ON (t2.KEY_FIELD = t1.KEY_FIELD)
WHERE t2.KEY_FIELD IS NULL
Trong trường hợp này, giả định là TABLE_2.KEY_FIELD là một phần của khóa chính trên TABLE_2, và do đó không bao giờ có thể là NULL nếu dữ liệu thực sự có trong TABLE_2. Nếu, sau khi tham gia ở trên, TABLE_2.KEY_FIELD được tìm thấy chứa NULL trong tập hợp đã nối, điều đó có nghĩa là không có hàng TABLE_2 nào được tìm thấy để khớp với hàng TABLE_1 tương ứng. Điều này đôi khi có thể hữu ích.
Chia sẻ và thưởng thức.
Nguồn
2012-05-03 14:20:41
[Tài liệu là khá tốt] (http://docs.oracle.com/javadb/10.6.2.1/ref/rrefsqljusing.html) –