SELECT ENAME, EMP.JOB,DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.JOB=DEPT.DNAME;
This is giving the output as "no rows selected".
假设这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?
我不确定你想要什么 - 工作永远不会等于部门名称......这是正确的 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 永远不会像原始问题/查询中那样正确。