• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LEFT JOIN とRIGHT JOINの合体版のような結合方法。)

LEFT JOINとRIGHT JOINの合体版のような結合方法とは?

このQ&Aのポイント
  • 左側のデータあり右側のデータもある結果セットを返す結合方法
  • テーブルの結合条件に合致しなかった場合でも、両方のデータを含めることができる
  • LEFT JOINとRIGHT JOINの結果を混ぜて返すことができる

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

  • ベストアンサー
  • guttten
  • ベストアンサー率38% (7/18)
回答No.2

先に回答してくださっている方のおっしゃる通り、MySQLでは完全外部結合 をサポートしていないようです。 蛇足かもしれませんが、完全外部結合はまさしく質問者様がやりたい事そのままの ないようです。文法的には SELECT * FROM test1 FULL OUTER JOIN test2 ON test1.id=test2.id で、ORACLEなどでは質問者様の要望通りの結果が返ってきます。 先に回答して下さっている方の別解として、RIGHT JOINとLEFT JOINをUNIONする というものもご紹介します。 質問者様の載せていた2つのSQLをUNIONするだけです。 SELECT * FROM test1 LEFT JOIN test2 ON test1.id=test2.id UNION SELECT * FROM test1 RIGHT JOIN test2 ON test1.id=test2.id ご参考までに。

karace
質問者

お礼

完全外部結合というのですね。 mysqlで無いということで今後に期待します。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

私の記憶ではmysqlは完全外部結合をサポートしていないような・・・ ただしUNIONでidを拾って、LEFT JOINを2度することで対応は可能です。 SELECT t1.*,t2.* FROM (SELECT id from test1 union SELECT id from test2) AS SUB LEFT JOIN test1 as t1 using(id) LEFT JOIN test2 as t2 using(id) ORDER BY SUB.id

karace
質問者

お礼

完全外部結合というのですね。 mysqlで無いということで今後に期待します。 ありがとうございます。

すると、全ての回答が全文表示されます。

専門家に質問してみよう