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

SQL - khớp các bản ghi từ bảng này sang bảng khác dựa trên một số cột

Thiết kế DB kém, nhưng, giả sử bạn phải sống với nó:

SELECT h.name
    FROM tblhobby h
        INNER JOIN tblavailable_hobby ah1
            ON h.hobby1 = ah1.available_hobby
        INNER JOIN tblavailable_hobby ah2
            ON h.hobby2 = ah2.available_hobby
        INNER JOIN tblavailable_hobby ah3
            ON h.hobby3 = ah3.available_hobby

CHỈNH SỬA :Trả lời sự thay đổi được đề xuất trong các bình luận bên dưới.

SELECT h.name
    FROM tblhobby h
        LEFT JOIN tblavailable_hobby ah1
            ON h.hobby1 = ah1.available_hobby
        LEFT JOIN tblavailable_hobby ah2
            ON h.hobby2 = ah2.available_hobby
        LEFT JOIN tblavailable_hobby ah3
            ON h.hobby3 = ah3.available_hobby
    WHERE (h.hobby1 IS NULL OR ah1.available_hobby IS NOT NULL)
        AND (h.hobby2 IS NULL OR ah2.available_hobby IS NOT NULL)
        AND (h.hobby3 IS NULL OR ah3.available_hobby IS NOT 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. Có bao nhiêu hàng trong cơ sở dữ liệu QUÁ NHIỀU?

  2. Liệt kê tất cả các bảng có chứa một tên cột nhất định

  3. MYSQL chia kết quả từ nhiều truy vấn con với nhiều hàng

  4. Truy vấn MySQL để tính toán tỷ lệ phần trăm của tổng số cột

  5. Cách chọn bản ghi cuối cùng từ bảng MySQL bằng cú pháp SQL nếu chỉ đáp ứng một điều kiện