我正在创建SQL查询,该查询涉及具有1到N关系的多个表以支持分页。
为了得到前10位父母,我试着去做
SELECT * from parent p
LEFT JOIN child c
ON c.parent_id = p.id
LIMIT 10
如果任何父母有多个孩子
,这不起作用我可以做的另一个选择是
SELECT * from parent LIMIT 10 into temp_p;
SELECT * from temp_p p
LEFT JOIN child c
ON c.parent_id = p.id
这非常笨拙。我想做的是
SELECT * from parent p LIMIT 10
LEFT JOIN child c
ON c.parent_id = p.id
但当然语法错了。我想知道Postgresql是否有某种方式来支持我想做的事情。
答案 0 :(得分:7)
WITH ten_parents AS (
SELECT * from parent LIMIT 10)
SELECT *
FROM ten_parents p
LEFT JOIN child c
ON c.parent_id = p.id