ホームページ >データベース >mysql チュートリアル >MySQL に FULL OUTER JOIN 機能がないことを回避するにはどうすればよいですか?
MySQL は FULL OUTER JOIN
をネイティブにサポートしていません。 これにより、使用しようとすると構文エラーが発生します。
解決策: UNION の使用
FULL OUTER JOIN
の動作を複製するには、MySQL では UNION
句を使用した回避策が必要です。これは、LEFT JOIN
と RIGHT JOIN
の結果を結合します。
これを達成する方法は次のとおりです:
<code class="language-sql">SELECT airline, airports.icao_code, continent, country, province, city, website FROM airlines LEFT JOIN airports ON airlines.iaco_code = airports.iaco_code LEFT JOIN cities ON airports.city_id = cities.city_id LEFT JOIN provinces ON cities.province_id = provinces.province_id LEFT JOIN countries ON cities.country_id = countries.country_id LEFT JOIN continents ON countries.continent_id = continents.continent_id UNION SELECT airline, airports.icao_code, continent, country, province, city, website FROM airlines RIGHT JOIN airports ON airlines.iaco_code = airports.iaco_code RIGHT JOIN cities ON airports.city_id = cities.city_id RIGHT JOIN provinces ON cities.province_id = provinces.province_id RIGHT JOIN countries ON cities.country_id = countries.country_id RIGHT JOIN continents ON countries.continent_id = continents.continent_id;</code>
このクエリは、LEFT JOIN
(左側のテーブルのすべての行、右側の行と一致) と RIGHT JOIN
(右側のテーブルのすべての行、左側の行と一致) の結果を効果的にマージします。 FULL OUTER JOIN
と同様の完全なデータセット。 重複は UNION
操作によって削除されることに注意してください。 重複を保持する必要がある場合は、UNION ALL
.
以上がMySQL に FULL OUTER JOIN 機能がないことを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。