从emp表和部门表加入作业列和Dname列

从emp表和部门表加入作业列和Dname列

问题描述:

SELECT ENAME, EMP.JOB,DEPT.DNAME 
FROM EMP, DEPT 
WHERE EMP.JOB=DEPT.DNAME; 

这是给出的输出为“没有行选择”。从emp表和部门表加入作业列和Dname列

+2

关于你的表结构的一些信息? EMP.JOB是否应该等于DEPT> DNAME? – Matthew

+0

是的!我认为在DEPT> DNAME中你错位了>被“。” ....无论如何我得到它非常感谢你 – Chay

我不知道你想要什么 - 作业将永远不等于部门名称...以下是正确的连接-copy /粘贴运行和查看结果:

SELECT d.deptno, ENAME, JOB, DNAME 
    FROM scott.EMP e, scott.DEPT d 
WHERE e.deptno = d.deptno 
ORDER BY d.deptno 
/

FYI:在EMP .JOB = DEPT.DNAME将不会像原始问题/查询中那样正确。

+0

谢谢你的帮助我知道你给的答案,但我问的问题是正确的。 例如:在雇佣我有工作称为推销员在部门表我有推销员在Dname列。所以我想加入他们......无论如何我得到了它谢谢先生! – Chay

+0

@艺术你认为这两张桌子上都有deptno专栏,这绝对是合乎逻辑的,但这并不符合事实,在我看来,由于这个主意仍然是正确的,所以这仍然没有理由降低答案。无论如何,因为我们有太多downvoters在这个网站上给它+1赔偿downvote。 – CloudyMarble

+0

@MeNoMore - 你是对的。我写道,我假设用户会谈scott.emp表,而不是他的表。任何人如果冷静下来,可能会阅读其他人的头脑,对SQL一无所知。 – Art

假设EMP.JOB=DEPT.DNAME是正确的(东西,我无法想象)您的查询是正确实际上,你可以加入此类似:

SELECT ENAME, EMP.JOB,DEPT.DNAME 
FROM EMP inner join DEPT 
ON EMP.JOB=DEPT.DNAME; 

但这would'nt给其他esults比你的查询,我想问题是你的混淆列,通常引用是通过一个id列完成的。

EMP.JOB这可能是开发商程序员例如将匹配DEPT.DNAME理念在这种情况下将是例如开发部是某种奇怪的,我想你需要在第二次看如何你桌子相互连接。

生成从数据库视觉图可能是有帮助的,采取alook这些线来回进一步的信息:Tools to generate a database diagram/ER diagram from existing Oracle database?

+0

非常感谢你@menomore ....我接受这是一个蹩脚的问题 – Chay