MySQL FULL JOIN のエミュレーション
MySQL では、FULL OUTER JOIN の直接サポートがないことが課題となる可能性があります。この制限を克服するには、一般的な回避策が必要です。
説明:
MySQL は LEFT JOIN および RIGHT JOIN 操作を使用しますが、FULL JOIN は使用しません。したがって、FULL JOIN をエミュレートするには、これらの結合の組み合わせが必要です。
アプローチ:
-
LEFT JOIN:
- テーブル t_13 と t_17 の間で LEFT JOIN を実行し、共通フィールド「value」に一致させます。
- この操作は、t_13 のすべての行を t_17 内の対応する行とペアにするか、NULL 値がある場合は NULL 値とペアにします。
-
RIGHT JOIN:
- テーブル t_13 と t_17 の間で RIGHT JOIN を実行します。 LEFT JOIN ですが、テーブルの順序が逆です。
- このステップでは、t_17 のすべての行が t_13 の対応する行と一致するか、一致するものがない場合は NULL 値と一致します。
-
UNION ALL:
- UNION ALL 操作を使用して、LEFT JOIN と RIGHT JOIN の結果を結合します。
- これにより、両方に一致する行が結合されます。
-
WHERE 句:
- WHERE 句を追加して、テーブル内の NULL 値をフィルタリングして除外します。 「val13」フィールド。
- これにより、両方のテーブルが NULL を返し、一致しないことを示す行が削除されます。
-
ORDER BY および LIMIT:
- 結合された結果を「val13」と「val17」の合体値で並べ替えて、単一の並べ替えられたリストを取得します。
- オプションで、LIMIT 句を適用して行数を制限します。
以上がMySQL で FULL OUTER JOIN をエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。