sql >> Databasteknik >  >> RDS >> Mysql

SQL - matcha poster från en tabell till en annan tabell baserat på flera kolumner

Dålig DB-design, men förutsatt att du måste leva med det:

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

REDIGERA :Svarar på den vändning som föreslås i kommentarerna nedan.

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. Mysql får sista id för specifik tabell

  2. Användaraktivitetsflöde (ala facebook). Hur grupperar man liknande aktiviteter?

  3. Lås Oracle-databasen innan du kör skripten Delete/Load data

  4. endast mysqldump-data