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

Kondisi negatif di Gabung

Anda memiliki banyak cara menggunakan left join with is null atau not exists

Select 
un.user_id 
from user_notifications un
left join user_push_notifications upn 
on upn. user_id = un.user_id  and un.notification_id  = 'xxxxyyyyyzzzz' 
where upn. user_id is null

Select 
un.user_id 
from user_notifications un
where 
un.notification_id  = 'xxxxyyyyyzzzz' 
and not exists
(
 select 1 from user_push_notifications upn 
 where 
 un.user_id = upn.user_id 
 and upn.notification_id = 'xxxxyyyyyzzzz'
)

Untuk meningkatkan kinerja , Anda mungkin perlu menambahkan indeks jika belum ditambahkan

alter table user_notifications add index user_notifi_idx(user_id,notification_id);
alter table user_push_notifications add index user_notifp_idx(user_id,notification_id);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gabung dalam antara tiga tabel di mysql

  2. Mengapa kolom teks tidak dapat memiliki nilai default di MySQL?

  3. Mengapa kunci asing tidak dibuat dengan GORM?

  4. Apakah Anda diizinkan menggunakan angka sebagai nama tabel di MySQL?

  5. Bergabung dengan tabel di SQL