Как выбрать из таблицы, где известен столбец внешнего ключа - PullRequest
0 голосов
/ 08 июня 2019

таблица foo_bar

id | name | parent(foreign key)
------------------
1  | foo  | null
2  | bar  | 1
3  | sql  | 1

Как выбрать строки, если известен столбец внешнего ключа? Например, я хочу выбрать все строки, где родительское имя 'foo', и оно должно вывести строку и строку sql

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Вам нужно самостоятельно присоединиться:

select f1.*
from foo_bar f1 inner join foo_bar f2
on f1.parent = f2.id
where f2.name = 'foo'

или вы можете сначала получить идентификатор родителя и использовать его в предложении WHERE:

select * from foo_bar
where parent = (select id from foo_bar where name = 'foo')
0 голосов
/ 09 июня 2019

Следующее с exists может быть более эффективной альтернативой хорошему ответу @forpas:

select * 
  from foo_bar f1
 where exists (select 1 
                 from foo_bar f2 
                where f2.name = 'foo' 
                  and f2.id = f1.parent
               )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...