自连接查询:如何return子行和父行?
Self join query: how to return children and parent row?
我有这个table:
Content:
- id
- parent_id
- slug
- creation_date
parent_id是指向同一个table的外键(content.id)。
我想 select table 中属于同一 table 中的 parent_id 的所有子行。我希望父行也被 returned。
现在我有这两个查询,它们都只对 return 子行有效:
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
如何 return 子行以及按 creation_date 排序的父行?
谢谢!
select child.*
from Content child
join Content parent
on child.parent_id = parent.id
where parent.slug = 'some-slug'
union all
select parent.*
from Content parent
where parent.slug = 'some-slug'
order by
creation_date
我有这个table:
Content:
- id
- parent_id
- slug
- creation_date
parent_id是指向同一个table的外键(content.id)。
我想 select table 中属于同一 table 中的 parent_id 的所有子行。我希望父行也被 returned。
现在我有这两个查询,它们都只对 return 子行有效:
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
如何 return 子行以及按 creation_date 排序的父行?
谢谢!
select child.*
from Content child
join Content parent
on child.parent_id = parent.id
where parent.slug = 'some-slug'
union all
select parent.*
from Content parent
where parent.slug = 'some-slug'
order by
creation_date