Sql Developer - 我很新(学习一些基础知识)

时间:2017-02-07 13:01:31

标签: sql oracle self-join

我对SQL Developer很新,我有一些练习业务问题来帮助我建立自己的知识..

我想要做的是我有一个名为'VMStaff'的表,其中包含姓名,部门,收藏夹颜色,性别,工作角色和管理者姓名等列。 在此表中,一些经理在“经理名称”和“姓名”

下有条目

我想从我的输出中得到的是一位同事的名字和他们的经理最喜欢的颜色..我试过通过自我加入这样做但必须遗漏一些东西 - 是否有人能够帮助或阐明这一点?

我已经尝试了两次来完成这项工作,见下文 -

NUMBER1 -

SELECT vmstaff1.name, vmstaff2."FAVOURITE COLOUR"
from vmstaff name, vmstaff "Favourite Colour"
Left JOIN vmstaff1 vmstaff2
on vmstaff1."Manager Name" = Vmstaff2.Name

NUMBER 2 -

Select VM1.Name, VM2."Favourite Colour"
From vmstaff.Name as VM1
Inner Join vmstaff."Favourite Colour" as VM2
on VM1."Manager Name" = VM2."Favourite Colour"

我对如何加入表以及如何使用别名缺乏了解。在尝试NUMBER1时,我收到错误消息无效的SQL语句,在尝试编号2中,我收到错误消息 SQL命令未正确结束

1 个答案:

答案 0 :(得分:1)

你将再次加入桌面:

name

使用别名允许您使用相同的表,就好像它是不同的一样。在这种情况下,每个managername提供喜欢的颜色并且像主键一样,然后left join本质上是同一个表中的外键。

现在,inner join代替{{1}}的原因是什么?最高老板不会有经理,但可能不想被排除......