SELECT airline, airports.icao_code, continent, country, province, city, website
FROM airlines
FULL OUTER JOIN airports ON airlines.iaco_code = airports.iaco_code
FULL OUTER JOIN cities ON airports.city_id = cities.city_id
FULL OUTER JOIN provinces ON cities.province_id = provinces.province_id
FULL OUTER JOIN countries ON cities.country_id = countries.country_id
FULL OUTER JOIN continents ON countries.continent_id = continents.continent_id
上面说
SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以在第4行使用'outer join airports
on airlines.iaco_code = airports.iaco_code full outer join'附近
我觉得语法是对的。我从来没有做过很多连接之前,但我需要这些列在一个表,这是交叉引用的各种id的。
5条答案
按热度按时间20jt8wwn1#
MySQL中没有
FULL OUTER JOIN
。参见7.2.12. Outer Join Simplification和12.2.8.1. JOIN Syntax:您可以使用UNION(从MySQL 4.0.0开始)模拟
FULL OUTER JOIN
:其中两个表t1、t2:
有三个表t1、t2、t3:
neekobn82#
克莱图斯的回答不太对。
UNION
将删除FULL OUTER JOIN
可能包含的重复记录。如果您需要使用类似以下内容的副本:yhived7q3#
我刚刚为此做了一个小把戏:
关键是,来自dual的查询是一个固定点,mysql可以将另外两个表外连接到该固定点
3xiyfsfu4#
只需补充一下需要
FULL OUTER JOIN
三个表t1、t2、t3的情况。你可以依次做t1,t2,t3,左连接剩下的两个表,然后合并。6tr1vspr5#
只是为了补充这里提供的答案,我想分享这个连接4个表的例子,在所有
SELECT
语句上使用LEFT JOIN
,还有一个更形象的例子。