INNER JOIN 条件不起作用
Posted
技术标签:
【中文标题】INNER JOIN 条件不起作用【英文标题】:INNER JOIN condition not working 【发布时间】:2013-08-05 12:25:51 【问题描述】:假设我们的表格为:
EMPNO ENAME DEPTNO
------ ------ ----------
7369 SMITH 20
7499 ALLEN 30
7654 MARTIN 30
7788 SCOTT 20
7839 KING 10
7900 JAMES 30
我们如何找到与 SCOTT 在同一部门工作的所有员工? 我尝试如下:
SELECT e.ename FROM employee e INNER JOIN employee m ON e.deptno=m.deptno;
,但结果不正确。
【问题讨论】:
Parado 解决方案有效吗?投票 upp 并将其设置为您的首选答案。 【参考方案1】:尝试添加如下条件
SELECT e.ename
FROM employee e
INNER JOIN employee m ON e.deptno=m.deptno
AND m.ENAME = 'SCOTT'
WHERE m.ENAME <> 'SCOTT'; -- exclude scott
您也可以尝试使用子查询
SELECT e.ename
FROM employee e
WHERE EXISTS
(
SELECT 1
FROM employee M
WHERE M.ENAME = 'SCOTT'
and E.deptno=M.deptno
)
AND m.ENAME <> 'SCOTT'; -- exclude scott;
【讨论】:
但我的一位朋友将解决方案邮寄给我:从员工中选择 e.ename e INNER JOIN 员工 m ON e.deptno=m.deptno AND m.ename = 'SCOTT' AND e.ename '斯科特';这个“”运算符是什么意思? @RubbalBhusri 所以scott
不会包含在结果列表中。以上是关于INNER JOIN 条件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥这个使用 INNER JOIN 的 SQL DELETE 查询不起作用? [复制]
ORACLE SQL UPDATE 与 INNER JOIN 不起作用