Sql开发人员-我是个新手(学习一些基础知识)

Sql开发人员-我是个新手(学习一些基础知识),sql,oracle,self-join,Sql,Oracle,Self Join,我是SQL开发人员的新手,我有一些实践业务问题来帮助我积累知识 我想做的是,我有一个名为“VMStaff”的表格,其中列有姓名、部门、喜欢的颜色、性别、工作角色和经理姓名。。 在此表中,一些经理在“经理姓名”和“姓名”下有条目 我想从我的输出中得到一位同事的名字和他们的经理最喜欢的颜色。。我已经尝试过通过自连接来实现这一点,但肯定遗漏了一些东西——有人能够提供帮助或阐明这一点吗 我已经尝试了两次,以使这项工作,见下文- 编号1- SELECT vmstaff1.name, vmstaff2."F

我是SQL开发人员的新手,我有一些实践业务问题来帮助我积累知识

我想做的是,我有一个名为“VMStaff”的表格,其中列有姓名、部门、喜欢的颜色、性别、工作角色和经理姓名。。 在此表中,一些经理在“经理姓名”和“姓名”下有条目

我想从我的输出中得到一位同事的名字和他们的经理最喜欢的颜色。。我已经尝试过通过自连接来实现这一点,但肯定遗漏了一些东西——有人能够提供帮助或阐明这一点吗

我已经尝试了两次,以使这项工作,见下文-

编号1-

SELECT vmstaff1.name, vmstaff2."FAVOURITE COLOUR"
from vmstaff name, vmstaff "Favourite Colour"
Left JOIN vmstaff1 vmstaff2
on vmstaff1."Manager Name" = Vmstaff2.Name
第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"

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

您将再次加入表:

select t1.name, t2.favouritecolour as man_fav_col
from Table1 t1
left join Table1 t2
  on t1.managername = t2.name
使用别名可以使用相同的表,就像使用不同的表一样。在这种情况下,每个
名称
都提供最喜欢的颜色并充当主键,然后
managername
本质上是同一个表中的外键


现在,使用
左连接
而不是
内部连接
的原因是什么?首席上司不会有经理,但可能不想被排除在外…

展示您的尝试,这对学习(因为我们可以纠正特定问题)更好,对我们来说更快(因为我们不需要重复您已经知道的内容…),而不是发布您尝试过的SQL。SQL查询由数据库服务器决定(在本例中为Oracle)而不是客户端(SQL开发人员)。在任何情况下,您都应该编辑问题并共享相关信息:表结构、示例数据、预期输出和(重要)到目前为止,您得到了什么以及它如何无法满足您的需要。请发布一篇文章,最好是关于您的表结构的DDL语句,关于一些示例数据的DML语句,以及您试图回答问题的地方,您认为它出了错。请注意:StackOverflow不是一个教程网站。