1

私は以下の選択した結果を持っています:

Select t1.ID, t1.Value1 
from t1 
where t1.ID=1

結果:

    ID  Value1
    1   val1
    1   val2
    1   val3
    1   val4

Select t2.ID, t2.Value2 
from t2 where t2.ID = 1

結果2:

    ID  Value2
    1   val5
    1   val6
    1   val7
    1   val8

そして私は次のように取得したい:

ID  Value1  Value2
1   val1    val5
1   val2    val6
1   val3    val7
1   val4    val8

この結果を取得するにはどうすればよいですか?

4

3 に答える 3

3

私はあなたの結果に基づいてあなたが望むものについて少し仮定しなければなりませんでしたが、私は以下がうまくいくと思います:

;WITH CTE1 AS
(   SELECT  ID, Value1, ROW_NUMBER() OVER(ORDER BY Value1) [RowNumber]
    FROM    t1
), CTE2 AS
(   SELECT  ID, Value2, ROW_NUMBER() OVER(ORDER BY Value2) [RowNumber]
    FROM    t2
)
SELECT  COALESCE(CTE1.ID, CTE2.ID) [ID],
        Value1,
        Value2
FROM    CTE1
        FULL JOIN CTE2
            ON CTE1.ID = CTE2.ID
            AND CTE1.RowNumber = CTE2.RowNumber

FULL JOIN正確な要件に応じて、LEFT JOINまたはに置き換えることができます。INNER JOIN

于 2012-04-04T11:18:03.450 に答える
2
SELECT t1.ID, t1.Value1, t2.Value2 FROM t1
INNER JOIN t2 ON t2.ID = t1.ID
WHERE t1.ID=1
于 2012-04-04T11:01:40.097 に答える
0

アウタージョインの1つがあなたの問題を解決するのに役立つことを願っています

SELECT t1.ID、t1.Value1、t2.Value2FROMt1右外側結合t2ONt2.ID = t1.ID WHERE t1.ID = 1

于 2012-04-14T07:02:16.980 に答える