Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql Où ne pas utiliser deux colonnes

Vous pouvez utiliser ceci (syntaxe plus compacte) :

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

ou le NOT EXISTS version (qui bien que plus complexe, devrait être plus efficace avec des index appropriés) :

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

et bien sûr le LEFT JOIN / IS NULL version que @jmacinnes a dans sa réponse.