2016-04-01 1 views
0
--------------+-------------------+ 
      id |   parent_id | 
--------------+-------------------| 
      18 |   <null> | 
      20 |   <null> | 
      25 |    18 | 
--------------+-------------------+ 

Я хочу, чтобы мой запрос выбирал все идентификаторы, где его идентификатор не существует в столбце parent_id. Как мне это сделать?PostgreSQL Получить все строки, где его идентификатор не находится нигде в другом столбце для таблицы

ответ

1

Самый простой способ сделать использование NOT EXISTS вернуть эти идентификаторы не найдены в колонке parent_id:

select id 
from tablename t1 
where not exists (select 1 from tablename t2 
        where t2.parent_id = t1.id) 

NOT IN также могут быть использованы, но будьте осторожны, NULL имеют быть обеспечено:

select id 
from tablename 
where id not in (select parent_id from tablename 
       where parent_id is not null) 

 Смежные вопросы

  • Нет связанных вопросов^_^