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

This is giving the output as "no rows selected".

4

2 回答 2

1

假设这EMP.JOB=DEPT.DNAME是正确的(我无法想象),您的查询实际上是正确的,您可以像这样加入:

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

但这不会提供比您的查询更多的结果,我想问题是您令人困惑的列,通常引用是通过 id 列完成的。

EMP.JOB例如,可能是开发人员程序员的想法将匹配例如DEPT.DNAME在这种情况下将是开发部门的想法有点奇怪,我想你再看看你的表是如何相互连接的。

从您的数据库生成可视化图表可能会有所帮助,请查看此线程以获取更多信息:Tools to generate a database diagram/ER diagram from existing Oracle database?

于 2013-02-07T05:41:22.827 回答
-1

我不确定你想要什么 - 工作永远不会等于部门名称......这是正确的 join -copy/paste 运行并查看结果:

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

仅供参考:EMP.JOB=DEPT.DNAME 永远不会像原始问题/查询中那样正确。

于 2013-02-06T18:13:17.400 回答