ホームページ >データベース >mysql チュートリアル >MySQL で FULL JOIN をエミュレートするにはどうすればよいですか?

MySQL で FULL JOIN をエミュレートするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-15 21:15:03879ブラウズ

How to Emulate a FULL JOIN in MySQL?

MySQL の FULL JOIN の制限について理解する

MySQL では、他のリレーショナル データベースとは異なり、FULL JOIN 操作を直接サポートしていません。 。これは、質問に記載されている望ましい結果を達成するには、別のアプローチが必要であることを意味します。

MySQL で FULL JOIN をエミュレートする

MySQL で FULL JOIN をエミュレートするには、推奨される回避策には、LEFT JOIN と RIGHT JOIN を組み合わせてください。その方法は次のとおりです。

SELECT
  t_13.value AS val13,
  t_17.value AS val17
FROM
  t_13
LEFT JOIN
  t_17
ON
  t_13.value = t_17.value
UNION ALL
SELECT
  t_13.value AS val13,
  t_17.value AS val17
FROM
  t_13
RIGHT JOIN
  t_17
ON
  t_13.value = t_17.value
WHERE
  t_13.value IS NULL
ORDER BY
  COALESCE(val13, val17)
LIMIT 30;

このクエリは、2 つのテーブル (t_13 と t_17) のデカルト積を効果的に生成し、両方の値が NULL である行をフィルターで除外します。結果として、両方のテーブルのすべての行 (もう一方のテーブルに一致する値がない行も含む) が含まれるテーブルが作成され、考えられるすべての組み合わせが表現されることが保証されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。