• ベストアンサー

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 不躾な質問で恐縮ですが、 アドバイスお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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

cinquecent
質問者

お礼

早速のアドバイスありがとうございます。 FULL OUTER JOIN と言うものがあるんですね。 勉強になりました。 有難うございました。