我有一個查詢,我想要檢索不同的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