我想根据父母的姓氏订购孩子。我正在尝试使用以下查询:
SELECT *
FROM children
WHERE parent_id IN (SELECT parent_id
FROM parent
ORDER BY lastName ASC);
SELECT parent_id FROM parent ORDER BY lastName ASC
按父母姓氏的顺序返回 parent_ids(这是预期的行为)。parent_ids 根据他们的姓氏升序排列是154,156,155,157
如您所见,结果按 parent_id 的升序排列(不是孩子各自父母的姓氏)。
有没有办法在不改变我的设计的情况下正确地构造这个查询?
谢谢你。
子选择返回一个集合,它没有顺序,
order by
没有用 - 它不会应用于最终结果集。如果您想通过“父母”的“姓氏”对“孩子”进行排序,则必须通过连接两个关系将这些“姓氏”投影到外部选择: