Получить данные, если значение 2-х столбцов одинаковые, но находятся на разных строках

С помощью какого запроса можно получить id и start_date, при условии, что у id есть идентичное значение в столбце return_id?

пример таблицы БД


Ответы (1 шт):

Автор решения: cauf

Есть два варианта - соединение и подзапрос.

1. Соединение

select 
    t1.id, 
    t1.start_date
from
    table as t1 
    inner join 
    table as t2 
    on t1.id = t2.return_id

2. Подзапрос

select 
    t1.id, 
    t1.start_date
from
    table as t1 
where
    exists (
        select *
        from
            table as t2
        where 
            t2.return_id = t1.id
    )

Первый вариант должен быть более оптимальным в плане производительности, так как соединение выполняется только один раз, а подзапрос по каждой строке

→ Ссылка