sql >> データベース >  >> RDS >> Mysql

mysql2つの列を使用していない場合

    これを使用できます(よりコンパクトな構文):

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

    またはNOT EXISTS バージョン(より複雑ですが、適切なインデックスを使用するとより効率的になるはずです):

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

    そしてもちろん、LEFT JOIN / IS NULL @jmacinnesが彼の答えに持っているバージョン。



    1. ORA-00903:PreparedStatementのテーブル名が無効です

    2. テーブルからすべての列に加えて、ROWNUMなどの追加の列を選択するにはどうすればよいですか?

    3. すべてのリモート接続を許可する、MySQL

    4. 列のサイズを変更する方法