ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3876593 異なるキーで取得したデータの合成
質問者:nakatushi SQLに関して質問です。

以下のようなテーブルA、Bがあった場合、

【テーブルA】
 カラム1  カラム2
 ------------------------
 AAA   CCC
 BBB   DDD


【テーブルB】
 カラム3  カラム4
 ------------------------
 AAA   1
 BBB   2
 CCC   3
 DDD   4

次のような結果を得るにはどのようなSQL文を記述すれば良いでしょうか?

【求める結果】
 カラム1  カラム2 カラム4(1) カラム4(2)
 ---------------------------------------------------
 AAA   CCC    1      3
 BBB   DDD    2      4


非常に初歩的な質問かもしれませんが宜しくお願いいたします。
困り度:
  • 困っています
質問投稿日時:
08/03/19 16:54
この質問に対する回答は締め切られました。

回答

ANo.2 SELECT COL1,COL2,
(SELECT COL4 FROM TABLEB WHERE COL3=COL1) COL4_1,
(SELECT COL4 FROM TABLEB WHERE COL3=COL2) COL4_2
FROM TABLEA
回答者:nora1962
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
08/03/19 18:28
この回答へのお礼お礼遅くなりました。
回答ありがとうございました。
教えていただいた方法ではSELECT COL4 FROM TABLEB WHERE COL3=COL1(or COL2)
の箇所でCOL1(or COL2)の指定でエラーとなりました。
今回は以下の方法で実施いたしました。

SELECT A.カラム1,A.カラム2,B.カラム4,C.カラム4
FROM テーブルA AS A,テーブルB AS B,テーブルB AS C
WHERE B.カラム3 = A.カラム1(+)
AND C.カラム3 = A.カラム2(+)

回答良回答20pt

ANo.1 SELECT T.F1, T.F2, Max(T.F3) AS F3, Max(T.F4) AS F4
FROM [SELECT T1.F1 AS F1, T1.F2 AS F2, T2.F2 AS F3,0 AS F4
FROM T1 LEFT JOIN T2 ON (T1.F1 = T2.F1)
UNION
SELECT T1.F1 AS F1, T1.F2 AS F2, 0 AS F3,T2.F2 AS F4
FROM T1 LEFT JOIN T2 ON (T1.F2 = T2.F1)]. AS T
GROUP BY T.F1, T.F2;

マイナスが無い事が前提。

カラム3、4が「文字列」の場合は「0」を「""」(空文字列)にする事。
回答者:chie65536
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
08/03/19 17:21
この回答へのお礼お礼遅くなりました。
回答ありがとうございました。
教えていただいた方法でも解決いたしましたが、
今回は以下の方法で実施いたしました。

SELECT A.カラム1,A.カラム2,B.カラム4,C.カラム4
FROM テーブルA AS A,テーブルB AS B,テーブルB AS C
WHERE B.カラム3 = A.カラム1(+)
AND C.カラム3 = A.カラム2(+)