1054 完全连接中的未知列,但不是其他连接

Jel*_*tch 5 php mysql join

为什么我会从以下 mysql 语法中收到“1054 未知列错误”:

SELECT attorney_first_name, attorney_last_name, att_school, att_degree_obtained
FROM jos_legalally_attorneys
FULL JOIN jos_legalally_attorney_education
ON jos_legalally_attorneys.user_id=jos_legalally_attorney_education.user_id;
Run Code Online (Sandbox Code Playgroud)

它导致错误:

#1054 - Unknown column 'jos_legalally_attorneys.user_id' in 'on clause' 
Run Code Online (Sandbox Code Playgroud)

我只在尝试FULL JOIN. 使用此确切语法时,所有其他连接(内部、右、左)都将成功。(我已经尝试过这种FULL OUTER JOIN变化)。

cla*_*219 3

这里报告,MySQL不支持FULL JOIN,所以你的查询解释如下:

SELECT attorney_first_name, attorney_last_name, att_school, att_degree_obtained
FROM jos_legalally_attorneys as FULL #FULL is taken as table alias!!
INNER JOIN jos_legalally_attorney_education
ON jos_legalally_attorneys.user_id=jos_legalally_attorney_education.user_id;
Run Code Online (Sandbox Code Playgroud)

现在,由于它具有FULL的表别名jos_legalally_attorneys,因此它无法正常工作。

如果您尝试以下查询,它应该不会给出错误(即使它没有执行您想要的操作):

SELECT attorney_first_name, attorney_last_name, att_school, att_degree_obtained
FROM jos_legalally_attorneys
FULL JOIN jos_legalally_attorney_education
ON FULL.user_id=jos_legalally_attorney_education.user_id;
Run Code Online (Sandbox Code Playgroud)

现在,为了获得FULL JOINMySQL 下所需的内容,您需要执行以下操作(如下所示

SELECT attorney_first_name, attorney_last_name, att_school, att_degree_obtained
FROM jos_legalally_attorneys
LEFT JOIN jos_legalally_attorney_education
ON jos_legalally_attorneys.user_id=jos_legalally_attorney_education.user_id
UNION ALL
SELECT attorney_first_name, attorney_last_name, att_school, att_degree_obtained
FROM jos_legalally_attorneys
RIGHT JOIN jos_legalally_attorney_education
ON jos_legalally_attorneys.user_id=jos_legalally_attorney_education.user_id
Run Code Online (Sandbox Code Playgroud)