ホームページ > データベース > mysql チュートリアル > MySQLは完全な外側結合をサポートしていますか?

MySQLは完全な外側結合をサポートしていますか?

Mary-Kate Olsen
リリース: 2025-01-25 13:36:13
オリジナル
222 人が閲覧しました

Does MySQL Support Full Outer Joins?

MySQL には直接完全外部結合のサポートがないことと回避策

質問: MySQL は、一致基準に関係なく、結合された両方のテーブルのすべての行が確実に含まれるネイティブ完全外部結合を提供しますか?

答え: いいえ、MySQL は完全外部結合を直接サポートしていません。 ただし、代替手法を使用してこの機能を効果的に複製できます。

アプローチ 1: UNION を活用する

このアプローチは、出力に重複行が生成されるリスクがない場合に適しています。 クエリは、LEFT JOIN:RIGHT JOIN を使用して UNION

を結合します。
<code class="language-sql">SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id;</code>
ログイン後にコピー

アプローチ 2: アンチ結合を使用した UNION ALL の採用

行が重複する可能性があるシナリオでは、より堅牢な方法が必要です。これには、UNION ALL をアンチ結合とともに使用して冗長性を排除することが含まれます:

<code class="language-sql">SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL;</code>
ログイン後にコピー

アンチ結合 (WHERE t1.id IS NULL 部分の RIGHT JOIN) は、UNION ALL 操作が結果を結合する前に重複を除外します。 これにより、完全外部結合の完全かつ正確なエミュレーションが保証されます。

以上がMySQLは完全な外側結合をサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート