Mysql
 sql >> Database >  >> RDS >> Mysql

mysql Dove non usando due colonne

Puoi usare questo (sintassi più compatta):

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

o il NOT EXISTS versione (che sebbene più complessa, dovrebbe essere più efficiente con indici adeguati):

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

e ovviamente il LEFT JOIN / IS NULL versione che @jmacinnes ha nella sua risposta.