sql >> Databasteknik >  >> RDS >> Mysql

mysql Var inte i att använda två kolumner

Du kan använda detta (mer kompakt syntax):

SELECT *
FROM CompletedTasks
WHERE (userID, taskID) NOT IN
      ( SELECT userID, taskID
        FROM PlannedTasks
      ) ;

eller NOT EXISTS version (som även om den är mer komplex, men borde vara mer effektiv med korrekta index):

SELECT c.*
FROM CompletedTasks AS c
WHERE NOT EXISTS 
      ( SELECT 1
        FROM PlannedTasks AS p
        WHERE p.userID = c.userID
          AND p.taskID = c.taskID
      ) ;

och naturligtvis LEFT JOIN / IS NULL version som @jmacinnes har i sitt svar.



  1. visa flera poster med hjälp av resultatuppsättningen

  2. MySQL INSERT I DÄR INTE FINNS

  3. Hur infogar man flera rader baserat på en fråga?

  4. Mysql strip time-komponent från datetime