ホームページ > データベース > mysql チュートリアル > MySQL に FULL OUTER JOIN サポートがないことを回避するにはどうすればよいですか?

MySQL に FULL OUTER JOIN サポートがないことを回避するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-09 20:51:42
オリジナル
676 人が閲覧しました

How to Work Around MySQL's Lack of FULL OUTER JOIN Support?

MySQL の FULL OUTER JOIN 制限の解決

MySQL にはネイティブ FULL OUTER JOIN サポートがないため、構文エラーが発生することがよくあります。 このガイドでは、UNION 演算子を使用して同じ結果を達成する回避策を示します。

次のエラーが発生しました:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'outer join airports on airlines.iaco_code = airports.iaco_code
  full outer join' at line 4
ログイン後にコピー

MySQL と FULL OUTER JOIN ステートメントとの互換性がないことを確認します。

この解決策には、2 つ以上のテーブルに対して FULL OUTER JOIN を使用して UNION をシミュレートすることが含まれます。

2 つのテーブル (t1 および t2):

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
ログイン後にコピー

これは、LEFT JOIN (t1 のすべての行、t2 の行と一致) と RIGHT JOIN (t2 のすべての行、t1 の行と一致) の結果を結合し、効果的に複製します。 FULL OUTER JOIN.

3 つのテーブル (t1、t2、および t3):

3 つのテーブルの場合、複雑さが増し、複数の UNION 操作が必要になります。

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
LEFT JOIN t3 ON t2.id = t3.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
LEFT JOIN t3 ON t2.id = t3.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
RIGHT JOIN t3 ON t2.id = t3.id
ログイン後にコピー

このアプローチでは、考えられるすべての結合の組み合わせを体系的に組み合わせて、3 つのテーブルにわたって FULL OUTER JOIN をエミュレートします。 特定のシナリオで実際の結合列を反映するように t1.idt2.id を忘れずに調整してください。 この手法を使用すると、MySQL の制限を回避し、目的の FULL OUTER JOIN 機能を実現できます。

以上がMySQL に FULL OUTER JOIN サポートがないことを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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