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

Pilih * dari table1 yang tidak ada di table2 dengan kondisional

Menggunakan LEFT JOIN/IS NULL:

   SELECT t.*
     FROM TABLE_LIST t
LEFT JOIN TABLE_LOG tl ON tl.jid = t.jid
    WHERE tl.jid IS NULL

Menggunakan NOT IN:

SELECT t.*
  FROM TABLE_LIST t
 WHERE t.jid NOT IN (SELECT tl.jid
                       FROM TABLE_LOG tl
                   GROUP BY tl.jid)

Menggunakan NOT EXISTS:

SELECT t.*
  FROM TABLE_LIST t
 WHERE NOT EXISTS(SELECT NULL
                    FROM TABLE_LOG tl
                   WHERE tl.jid = t.jid)

Untuk diketahui
LEFT JOIN/IS NULL dan NOT IN setara di MySQL - mereka akan melakukan hal yang sama, sedangkan NOT EXISTS lebih lambat/kurang efisien. Untuk detail lebih lanjut:http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - menghubungkan ke database mysql dari server yang berbeda

  2. Bagaimana cara melakukan pemformatan 'Kasus yang tepat' dari kolom mysql?

  3. Gambar Docker berjalan di prosesor m1

  4. Cache Basis Data Cerdas (?)

  5. MySql :Berikan opsi hanya baca?