MySQL での FULL JOIN のエミュレーション
MySQL では、FULL OUTER JOIN は直接サポートされていません。ただし、その機能をシミュレートする回避策を実装できます。
一般的なアプローチには、2 つの UNION ALL クエリの使用が含まれます。
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
このクエリは、最初に LEFT JOIN を実行し、次に UNION ALL を実行します。 RIGHT JOIN を使用します。 WHERE 条件は、LEFT JOIN で一致しない行が確実に含まれるようにします。最後に、COALESCE を使用して NULL 値を処理します。
これらの手順を組み合わせることで、MySQL は FULL OUTER JOIN をエミュレートし、一致する値がない場合でも両方のテーブルからすべての行を取得できるようになります。
以上がMySQL で FULL JOIN をエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。