Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql Dimana tidak menggunakan dua kolom

Anda dapat menggunakan ini (sintaks yang lebih ringkas):

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

atau NOT EXISTS versi (yang meskipun lebih kompleks, seharusnya lebih efisien dengan indeks yang tepat):

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

dan tentunya LEFT JOIN / IS NULL versi yang dimiliki @jmacinnes dalam jawabannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolom pembaruan MySQL hanya jika nilainya tidak kosong di mana

  2. Dapatkah saya memprediksi seberapa besar indeks Zend Framework saya? (dan beberapa Q cepat:s)

  3. Cara menghapus baris dari tiga tabel - kesalahan kueri

  4. Menggunakan kata kunci MySQL dalam kueri?

  5. Kendala kunci asing saat membuang data