Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql Wo nicht in der Verwendung von zwei Spalten

Sie können diese (kompaktere Syntax) verwenden:

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

oder NOT EXISTS Version (die zwar komplexer ist, aber mit geeigneten Indizes effizienter sein sollte):

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
      ) ;

und natürlich LEFT JOIN / IS NULL Version, die @jmacinnes in seiner Antwort hat.