QA@IT

複数のテーブルから任意に抽出して表を作成したい(MySQL,SELECT)

8742 PV

MySQL(SELECT文)をStudy中の者です。
初歩的な質問で恐縮ではありますが、本やWebを見てもどうしても自己解決できなかったため、この場をお借りいたします。

3つの以下のテーブル(tb1,tb2,tb3)から、GOALのような表を作りたいです。
どのような抽出表記になりますでしょうか。どうぞよろしくお願いいたします。

image2.jpg

回答

こんな感じでどうでしょうか。

SELECT * FROM
 (SELECT sch FROM tb1 UNION SELECT sch FROM tb2 UNION SELECT sch FROM tb3) t
 LEFT JOIN tb1 USING (sch)
 LEFT JOIN tb2 USING (sch)
 LEFT JOIN tb3 USING (sch);

編集 履歴 (0)
  • 早速のご回答ありがとうございます。SELECT UNION SELECTでつないでいく発想がありませんでした。
    さっそく実行してみたのですが、
    #1248 - Every derived table must have its own alias
    でエラーが出てしまいました。たびたび申し訳ありませんが何かヒントをいただけますと幸いです。
    -
  • 本件、回答していただきました内容で解決できました。ありがとうございました。
    (エイリアスを付け忘れておりました。失礼いたしました。)
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。