Как получить все внешние отношения отношения отсутствует в родительской таблице? - PullRequest
0 голосов
/ 28 апреля 2019

Я работаю над старым проектом, в который не включен внешний ключ отношения. некоторые категории отсутствуют. Я хочу получить все продукты, в которых category_id не существует в category_tbl

в следующей таблице есть category_id 3, которого нет в category_tbl

   category_tbl
    id name
     1 fruit
     2 animal

  product_tbl
     id name   category_id
     1  apple   1
     2  cat     2
     3  coffee  3
     4  tea     3

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Вы можете сделать это с NOT EXISTS:

select p.* 
from product_tbl p
where not exists (
  select 1 from category_tbl
  where id = p.category_id 
)

См. Демоверсию .
Результаты:

| id  | name  | category_id |
| --- | ----- | ----------- |
| 3   | coffe | 3           |
| 4   | tea   | 3           |
0 голосов
/ 28 апреля 2019

вы можете использовать левое соединение и чек, где category_id равен нулю

 select  c.name
 from product_tbl p 
 left  join category_tbl c  ON p.category_id = c.id 
 where category_id  is null 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...