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

Làm cách nào để thực hiện THAM GIA NGOÀI TRỜI ĐẦY ĐỦ trong MySQL?

Bạn không có người tham gia đầy đủ trong MySQL, nhưng bạn có thể chắc chắn mô phỏng chúng .

Đối với mã mẫu được phiên âm từ câu hỏi về Stack Overflow này bạn có:

Với hai bảng t1, t2:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

Truy vấn ở trên hoạt động cho các trường hợp đặc biệt trong đó tham gia bên ngoài đầy đủ hoạt động sẽ không tạo ra bất kỳ hàng trùng lặp nào. Truy vấn ở trên phụ thuộc vào UNION toán tử set để loại bỏ các hàng trùng lặp được giới thiệu bởi mẫu truy vấn. Chúng tôi có thể tránh giới thiệu các hàng trùng lặp bằng cách sử dụng anti-join mẫu cho truy vấn thứ hai, sau đó sử dụng toán tử UNION ALL set để kết hợp hai tập hợp. Trong trường hợp tổng quát hơn, khi một phép nối bên ngoài đầy đủ sẽ trả về các hàng trùng lặp, chúng ta có thể thực hiện điều này:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 cách chuyển đổi một số sang hệ bát phân trong MySQL

  2. Cách đặt lại mật khẩu người dùng gốc MySQL

  3. mySQL DataSource trên Visual Studio 2012

  4. mysql_fetch_array () mong đợi tham số 1 là vấn đề tài nguyên

  5. Chọn từ một bảng mà không chọn trong bảng khác