Как вернуть все строки, которые не совпадают в таблице соединений, и проверить соответствие?

0

Как вернуть все строки таблицы User когда

1. a row has not any match with join table ex **UserDetails**
2. a row has a match in **UserDetails**, check some condition ex: user location is **IND**

Пример таблицы

     User
     -----------------------
     id   name
     -----------------------
     1    Hearaman
     2    Ramse
     3    Temmy
     4    Robert

     UserDetails
     -----------------------------
     id   user_id     location
     1    3           USA
     2    4           IND

     Expected results
     --------------------------
     id    name        location
     --------------------------
     1     Hearaman    null
     2     Ramse       null
     4     Robert      IND
  • 1
    Сначала выясните, какую СУБД вы используете.
Теги:

1 ответ

2
Лучший ответ

Вы можете использовать left join и сделать фильтр

select u.id, u.name, ud.location
from User u 
left join UserDetails ud on ud.user_id = u.id 
where ud.user_id is null or 
      ud.location = 'IND';
  • 0
    Спасибо Йогеш за вашу помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню