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

sql cách kết hợp ba truy vấn từ hai bảng thành một truy vấn

Những yêu cầu này đủ khó hiểu nên có thể đáng để đánh giá lại mô hình dữ liệu của bạn. Tôi nghĩ UNION là giải pháp tốt nhất của bạn có thể được sửa đổi để sử dụng UNION ALL cho hiệu quả.

Tôi đã tập hợp một bản hack dựa trên mutex có thể có nhiều vấn đề phức tạp như bất kỳ truy vấn nào khác trên trang này.

select
  coalesce(t2.id, t1.name) AS ID,
  coalesce(t2.company, t1.name) AS Company,
  if(isnull(t2.id), 'NOT FOUND', 'FOUND') as Status
from (select 0 as mutex union select 1) as m
left join table1 as t1 on 1 = 1
left join table2 as t2 on t1.name = t2.name or (t1.id = t2.id and mutex)
group by coalesce(t2.id, t1.name)

Điều đó nói rằng, vui lòng kiểm tra các truy vấn này một cách cẩn thận và xem qua dữ liệu và kết quả của bạn. Có rất nhiều chỗ cho lỗi tùy thuộc vào dữ liệu đầu vào của bạ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. Danh sách thả xuống động cho các quốc gia, tiểu bang, vị trí địa lý khác nhau?

  2. Gọi đến một hàm thành viên rowCount () trên một đối tượng không phải

  3. Thiếu kết nối trong nhóm kết nối jdbc tomcat

  4. MySQL Workbench Error 1175 ngay cả với câu lệnh Where

  5. Cách phát hiện xem một giá trị có chứa ít nhất một chữ số trong MySQL hay không