我有一个查询,我想要检索不同的child2
行,但排序的是由共同父项关联的child1
行的属性。如果我这样做,我得到一个错误,因为ORDERBY
财产在DISTINCT
名单并不:SQL:选择按相关子项目属性排序的不同子项
select
distinct c2.Id, c2.Foo, c2.Bar
from Child1 c1
join Parent p on c1.parentId = p.Id
join Child2 c2 on c2.parentId = p.Id
order by c1.Id
但是,如果我添加c1.Id
的选择列表,我就失去了Child
行清晰度,为c1.Id
品牌他们全部不同。
如果我使用CTE或子查询先执行排序,然后从中选择不同的行,那么外部查询并不保证它将维护内部/ cte查询的顺序。
有没有办法做到这一点?
请问您可以提供您的表格结构吗? – jimmy8ball
所以,如果你有两行具有相同的'c.foo'我'c.bar'和不同的'p.createdate',你想使用哪两个'createdate'? –
@Nenad也会有孩子的主键,我会将其添加到示例中 – GoatInTheMachine