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

Cara mengambil hasil yang tidak cocok di mysql

Anda dapat menggunakan left outer join untuk mencapai ini:

select
    t1.tid
from
    table1 t1
    left outer join table2 t2 on
        t1.tid = t2.tid
where
    t2.tid is null

Apa yang dilakukan adalah mengambil tabel pertama Anda (table1 ), gabungkan dengan tabel kedua Anda (table2 ), dan isi null untuk table2 kolom di setiap baris di table1 yang tidak cocok dengan baris di table2 . Kemudian, itu menyaringnya dengan memilih hanya table1 baris di mana tidak ada yang cocok.

Atau, Anda juga dapat menggunakan not exists :

select
    t1.tid
from
    table1 t1
where
    not exists (select 1 from table2 t2 where t2.tid = t1.tid)

Ini melakukan left semi join , dan pada dasarnya akan melakukan hal yang sama dengan left outer join melakukan. Bergantung pada indeks Anda, yang satu mungkin lebih cepat dari yang lain, tetapi keduanya merupakan opsi yang layak. MySQL memiliki beberapa dokumentasi yang bagus tentang mengoptimalkan gabungan , jadi Anda harus memeriksanya..




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tampilkan nama bulan alih-alih nomor bulan di mysql

  2. Apakah modul MySQLdb mendukung pernyataan yang disiapkan?

  3. Bagaimana cara menggunakan lebih besar dari operator dengan tanggal?

  4. Bagaimana cara memperbaiki string UTF-8 yang disandikan ganda yang ada di bidang MySQL utf8_general_ci?

  5. Memformat stempel waktu