SELECT * FROM
(SELECT country_name
FROM countries
LIMIT 1) b
INNER JOIN
(SELECT country_name
FROM b --此处引用了join上方的表别名
LIMIT 1) a
坑1:报错!原因猜测:join的两方为并列关系,解释器执行下方的sql时,并不能识别出b的存在。
SELECT * FROM
(SELECT country_name
FROM countries
LIMIT 1) b
left JOIN
(SELECT *
FROM countries
LIMIT 1) b --设置的别名和上方的一样
坑2:报错!就算是一模一样的表,设置一样的别名也是会报错的。
正解如下:老老实实地写
SELECT * FROM
(SELECT country_name
FROM countries
LIMIT 1) b
inner JOIN
(SELECT *
FROM countries
LIMIT 1) a