SELECT ENAME, EMP.JOB,DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.JOB=DEPT.DNAME;
这将输出为“未选择行”。
答案 0 :(得分: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?
答案 1 :(得分:-1)
我不确定你想要什么 - 这个工作永远不会等于dept名称...这是正确的连接 - 复制/粘贴运行并看到结果:
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永远不会像orig问题/查询中那样正确。