- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:LEFT JOIN とRIGHT JOINの合体版のような結合方法。)
LEFT JOINとRIGHT JOINの合体版のような結合方法とは?
このQ&Aのポイント
- 左側のデータあり右側のデータもある結果セットを返す結合方法
- テーブルの結合条件に合致しなかった場合でも、両方のデータを含めることができる
- LEFT JOINとRIGHT JOINの結果を混ぜて返すことができる
- みんなの回答 (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 ご参考までに。
その他の回答 (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
質問者
お礼
完全外部結合というのですね。 mysqlで無いということで今後に期待します。 ありがとうございます。
お礼
完全外部結合というのですね。 mysqlで無いということで今後に期待します。 ありがとうございます。