共通の親によって関連するchild1
行のプロパティで注文された別のchild2
行を取得するクエリがあります。私は次の操作を行う場合ORDERBY
プロパティはDISTINCT
リストにないので、私はエラーを取得する:私は選択リストにc1.Id
を追加する場合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
行の明瞭さを失うことになりますそれらはすべて異なっています。
CTEまたはサブクエリを使用して最初に注文を行い、それから別個の行を選択すると、外部クエリでは内部/ cteクエリの順序が維持されることは保証されません。
これを達成する方法はありますか?
Select DISTINCT t.foo, t.bar From
(SELECT
c.foo, c.bar, p.createdDate
FROM Parent p
JOIN Child c on c.parentId = p.id
)t
ORDER BY t.createdDate
テーブル構造を証明できますか? – jimmy8ball
同じ 'c.foo' i' c.bar'と異なる 'p.createdate'を持つ2つの行がある場合、2つの' createdate'のどちらを使いたいのですか? –
@Nenad子供のプライマリキーもありますが、それを例に追加します。 – GoatInTheMachine