- ベストアンサー
2つのテーブルからデータを抽出
同じ列が存在する2つのテーブルがあります。 その2つのテーブルの同じ列同士を突き合わせ、 同じ条件の値を表示したいのですが、 SQL文で可能なのでしょうか? 例: 条件としてテーブル1、テーブル2の列Aが3以下の数字すべて テーブル1 列A ― 1 1 2 3 4 5 テーブル2 列A ― 1 2 2 3 3 3 3 4 4 5 ほしい結果 A|A ―― 1|1 1| 2|2 |2 3|3 |3 |3 |3 不躾な質問で恐縮ですが、 アドバイスお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SQL Server 2005以降ならば、以下の通りです。 SELECT t1.A,t2.A FROM (SELECT ROW_NUMBER() OVER (PARTITION BY A ORDER BY A) SEQ,* FROM テーブル1 WHERE A<=3) t1 FULL OUTER JOIN (SELECT ROW_NUMBER() OVER (PARTITION BY A ORDER BY A) SEQ,* FROM テーブル2 WHERE A<=3) t2 ON t2.A=t1.A AND t2.SEQ=t1.SEQ
お礼
早速のアドバイスありがとうございます。 FULL OUTER JOIN と言うものがあるんですね。 勉強になりました。 有難うございました。