mysql - “on 子句”中的未知列“EmployeeDemographics.EmployeeID”
问题描述
我想将此表作为输出,但出现此错误Unknown column 'EmployeeDemographics.EmployeeID' in 'on Clause'
我使用的查询是:
SELECT * FROM EmployeeDemographics FULL JOIN EmployeeSalary ON EmployeeDemographics.EmployeeID=EmployeeSalary.EmployeeID;
解决方案
目前 MySQL 不完全支持 Full Join。因此,您将不得不依靠一些解决方法连接来完成您的逻辑。
create table EmployeeDemographics(employeeid integer, firstname varchar(100), lastname varchar(100));
insert into EmployeeDemographics(employeeid, firstname,lastname) values(1, "User1", "TestLastname1");
insert into EmployeeDemographics(employeeid, firstname,lastname) values(2, "User2", "TestLastname2");
insert into EmployeeDemographics(employeeid, firstname,lastname) values(null, "User3", "TestLastname2");
create table EmployeeSalary(id integer, employeeid integer, jobtitle varchar(100), salary integer);
insert into EmployeeSalary(id, employeeid, jobtitle, salary) values(1, 1, "UserJob1", 12345);
insert into EmployeeSalary(id, employeeid, jobtitle, salary) values(2, 2, "UserJob2", 67890);
insert into EmployeeSalary(id, employeeid, jobtitle, salary) values(3, 3, "UserJob3", null);
SELECT ed.firstname, ed.lastname, es.salary
FROM EmployeeDemographics ed
LEFT JOIN EmployeeSalary es
ON ed.employeeid = es.employeeid
UNION ALL
SELECT ed.firstname, ed.lastname, es.salary
FROM EmployeeDemographics ed
RIGHT JOIN EmployeeSalary es
ON ed.employeeid = es.employeeid
WHERE ed.employeeid IS NULL
它是很久以前要求的功能,但尚不可用。
推荐阅读
- com - 来自 COM exe 的 STDOUT 和 STDERR
- css - 为什么不定位:粘性;工作
- java - ElasticSearch Java API 从查询构建器中获取不同的值
- javascript - Material UI 表格分页问题 React
- r - R并行后端:当一个进程面临异常时会发生什么?
- visual-studio - 如何将 Visual Studio 2017 构建输出记录到文件中?
- c# - 来自 XSD 的包装类 dll
- regex - 带有字母数字的字符串的正则表达式,其中包含“。” 特点
- linux - 如何找到存储在文件数据 txt 中的特定文本并且它只出现一次?
- r - stat_summary:将单个观察值包含到聚合函数中