0
行あるクエリ結果を平らにし、私は、子テーブル内のIDは、親テーブルからの外部キーである親テーブルにが側柱によって側へ
ID Name
1 abc
2 def
と子テーブル
ID LineId Item
1 1 A001
1 2 A002
2 1 B001
2 2 B002
を持っていますIDとLineIdの両方が子テーブルの主キーを構成します。
私はこのように、子テーブルから行が列になり、同じ外部キーを持つフラットな結果を生成するために、親と子テーブルの両方から「ID」に基づいて、これらの二つのテーブルに参加したい:
ID Name Item1 Item2 .....
1 abc A001 A002
2 def B001 B002
は最大LineID 2ですか? 'MAX(CASE WHEN LineID = 1 THEN Item)Item1、MAX(CASE WHEN LineID = 2 THEN Item)Item2'は、IDと名前でグループ分けします。詳細については、ケース集約を含むグループ別の検索を実行してください。 – ZLK
LineIdは、特定のIDの各エントリのキーに過ぎません。その最大値は2ではありません.2つ以上のID(外部キー)のエントリがある場合は2以上になる可能性があります – Harrobbed
最大数が2であるかどうかを尋ねるのは、単純な 'MAX(CASE ...')クエリ例えば、「P.ID、P.Name、MAXを選択します(LineID = 1 THEN Item)」項目1、MAX(CASE WHEN LineID = 2 THEN Item)項目2 FROM tblParent PbloseTblChild C ON C.ID = P.ID GROUP BY P.ID、P.Name'。LineIDが任意のサイズに拡大できる場合は、おそらく(最大LineIDに基づいて)動的SQLを使用する必要があります。 – ZLK