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

Kecualikan catatan jika tabel yang tepat cocok

Anda dapat menggunakan NOT EXISTS

SELECT a.id, a.name
FROM A
WHERE NOT EXISTS
(
    SELECT 1 FROM B
    WHERE b.A = a.id AND b.cond = 'X'
)

Namun, saya selalu lupa bahwa MySql adalah satu-satunya(?) rdbms yang memiliki masalah untuk mengoptimalkan EXISTS /NOT EXISTS . Jadi sedikit lebih efisien menggunakan LEFT JOIN pendekatan.

http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/

Di MS SQL-Server lebih baik menggunakan NOT EXISTS .

http://sqlperformance.com/2012/12 /t-sql-queries/left-anti-semi-join



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tarik data SQL dari dua tabel

  2. Urutan MySQL bersyarat dengan dua kolom (sama pentingnya)

  3. Mengapa saya perlu membersihkan kumpulan koneksi setiap kali saya menerapkan ulang?

  4. Mengapa driver QMYSQL tidak dimuat di QT5.2?

  5. Apakah MySQL menggunakan indeks untuk menyortir?