Mysql
 sql >> база данни >  >> RDS >> Mysql

Отрицателно условие в Join

Имате много начини да използвате left join with is null или 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'
)

За да увеличите производителността, може да се наложи да добавите индекс, ако все още не е добавен

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. mysql припокривания на две таблици във времеви марки

  2. MySql срещу NoSql - Структура и изпълнение на данни за коментари и уведомления в социалните мрежи

  3. Python+MySQLdb странен проблем

  4. Каква е разликата между VARCHAR и CHAR?

  5. Изключение за сигурност, използващо MySQL и Entity Framework на godaddy