返される2つの選択があります:
SELECT_A (COLUMN_A,COLUMN_B, SELECT_A_JOIN_COLUMN)
SELECT_B (COLUMN_A,COLUMN_B, SELECT_B_JOIN_COLUMN)
望ましい結果:
Result (COLUMN_A,COLUMN_B,SELECT_A_JOIN_COLUMN,SELECT_B_JOIN_COLUMN)
例:
SELECT_A
結果:
A B zxc
A B rty
SELECT_B
結果:
A B yui
A B hjk
望ましい結果:
A B zxc null
A B rty null
A B null yui
A B null hjk
これを達成する方法は?
ユニオンに近いですが、これをジョインで行うことはできますか?
編集:
Ok。それでは、私の目標を述べさせてください。階層ツリーを返すクエリを作成したい。これは、LINQ2Entities が、ナビゲーション プロパティに多くのインクルードがあるクエリに対して、非常に遅く非効率的な sql を生成しているためです。
だから私が最初に達成したいのは、ツリーを取得することです...どういうわけか。
例:
私は次のように結果を達成したい:
ObjectId | ChildType1Id | ChildType1Field | ChildType2Id | ChildType2Field
1 34 asd null null
1 12 xcv null null
1 5 klk null null
1 null null 6 vbn
1 null null 7 jkh
私はこれまでのところ、私を返す左結合を持つ2つの単純な選択を取得しました:
ObjectId | ChildType1Id | ChildType1Field
1 34 asd
1 12 zcv
1 5 klk
と
ObjectId | ChildType2Id | ChildType2Field
1 6 vbn
1 7 jkh
子の種類が増えるとどうなりますか? childType ごとに、ユニオンを使用する必要があるようです。50 列ある場合は、それらすべての列を UNION で指定する必要があります (同じ数の列が必要なため)。必要な列 (次の childrentype 列) を追加するためだけに join のようなものでこれらすべてのユニオンを作成することを避けることはできますか?
3 つの異なる childrenTypes の望ましい結果:
ObjectId|ChildType1Id|ChildType1Field|ChildType2Id|ChildType2Field|ChildType3Id|ChildType3Field
1 34 asd null null null null
1 12 xcv null null null null
1 5 klk null null null null
1 null null 6 vbn null null
1 null null 7 jkh null null
1 null null null null 5 iop
1 null null null null 9 klp
どんな助けでも感謝します。