Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL - съвпадение на записи от една таблица с друга таблица въз основа на няколко колони

Лош дизайн на DB, но ако приемем, че трябва да живеете с него:

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

РЕДАКТИРАНЕ :Отговор на обрата, предложен в коментарите по-долу.

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. SWITCH с LIKE вътре в заявката SELECT в MySQL

  2. Най-бърз произволен избор WHERE колона X е Y (NULL)

  3. Mysql или/и приоритет?

  4. Една заявка за актуализиране за всички актуализации

  5. Проблем при обвиване на главата около сложна заявка за изтриване на SQL