选择带有外连接的查询
Posted
技术标签:
【中文标题】选择带有外连接的查询【英文标题】:Select query with outer join 【发布时间】:2016-05-04 01:12:44 【问题描述】:我有两个表文件和雇员。
文件:
文件_ID|文件名 |修改者
1 a.java 10
2 b.java 11
员工:
标识|名称
10 拉胡尔 11 普里亚 12 罗希特
我想要做的是,打印所有文件名和修改该文件的人。我必须使用员工 ID 从表员工中获取 modifiedBy 人名。如果Employees 表中不存在employeeID,则不得抛出错误。 我被要求使用外连接来完成。请帮忙做这件事,因为我是这个话题的新手
【问题讨论】:
那个人有没有告诉你为什么要进行外部联接?你也可以添加预期结果吗? 【参考方案1】:使用这个查询:
SELECT F.filename, E.name
FROM Files AS F
LEFT OUTER JOIN Employees AS E
ON F.modifiedBy = E.ID
Files
表:(带有一个额外的、不存在的 modifiedby
id)
Employees
表:
输出:
编辑:
由于您使用的是 Oracle DBMS,因此您需要删除 AS
关键字:
SELECT F.filename, E.name
FROM Files F
LEFT OUTER JOIN Employees E
ON F.modifiedBy = E.ID
【讨论】:
非常感谢。但是当我尝试做同样的事情时,我得到了 sql 错误:ORA-00933: SQL command not properly ends 00933. 00000 - “SQL command not proper ending” 我在 oracle 中做的 啊,它是 Oracle,不是 mysql。尝试从命令中删除任何 AS 关键字并重试。 现在完美了!非常感谢..这真的很有帮助 我现在在文件“ApprovedBy”表中有另一列。所以我还需要打印 ApprovedBy Name,使用从 Files 表中获得的 ApprovedBy ID 以及从 Employees 表中获得的相应名称。请帮忙 @TeenaSam 请发布一个关于新表架构的新问题,我很乐意提供帮助。以上是关于选择带有外连接的查询的主要内容,如果未能解决你的问题,请参考以下文章