Запрос самосоединения: как вернуть дочернюю и родительскую строку?

У меня есть такая таблица:

Content:
- id
- parent_id
- slug
- creation_date

parent_id - это внешний ключ, указывающий на ту же таблицу (content.id).

Я хочу выбрать все строки в таблице, которые являются дочерними для parent_id в той же таблице. Я бы хотел, чтобы родительская строка тоже была возвращена.

Прямо сейчас у меня есть эти два запроса, оба из которых работают только с возвратом дочерних строк:

SELECT a.* 
FROM content a 
JOIN content b ON a.parent_id = b.id
WHERE b.slug = 'some-slug'
ORDER BY creation_date

а также:

SELECT content.* 
FROM content 
WHERE content.parent_id = (SELECT id FROM content WHERE slug= 'some-slug')
ORDER BY creation_date

Как я могу вернуть дочерние строки, а также родительскую строку, упорядоченную по creation_date?

Спасибо!


person SrgHartman    schedule 15.01.2015    source источник
comment
Вы почему-то избегаете UNION?   -  person Sonny    schedule 15.01.2015


Ответы (1)


person    schedule
comment
Почему вы используете подзапрос? - person Sonny; 15.01.2015
comment
@Sonny: Хороший момент, я использовал его для order by, но order by в любом случае применяется ко всему союзу. Обновил ответ. - person Andomar; 16.01.2015