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

Temukan catatan dari satu tabel yang tidak ada di tabel lain

Ada beberapa cara berbeda untuk melakukannya, dengan efisiensi yang bervariasi, bergantung pada seberapa bagus pengoptimal kueri Anda, dan ukuran relatif dari dua tabel Anda:

Ini adalah pernyataan terpendek, dan mungkin tercepat jika buku telepon Anda sangat pendek:

SELECT  *
FROM    Call
WHERE   phone_number NOT IN (SELECT phone_number FROM Phone_book)

sebagai alternatif (terima kasih kepada Alterlife )

SELECT *
FROM   Call
WHERE  NOT EXISTS
  (SELECT *
   FROM   Phone_book
   WHERE  Phone_book.phone_number = Call.phone_number)

atau (terima kasih kepada WOPR)

SELECT * 
FROM   Call
LEFT OUTER JOIN Phone_Book
  ON (Call.phone_number = Phone_book.phone_number)
  WHERE Phone_book.phone_number IS NULL

(mengabaikan itu, seperti yang dikatakan orang lain, biasanya yang terbaik adalah memilih hanya kolom yang Anda inginkan, bukan '* ')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mempartisi tabel miliar baris data sepak bola menggunakan konteks data

  2. Menggunakan Otomatisasi untuk Mempercepat Tes Rilis di Galera Cluster Dengan ClusterControl

  3. Bagaimana cara menghapus semua karakter numerik non-alfa dari string di MySQL?

  4. mysql_num_rows():argumen yang diberikan bukan sumber hasil MySQL yang valid

  5. Laravel-5 'LIKE' setara (Fasih)