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 不起作用

为啥这个使用 INNER JOIN 的 SQL DELETE 查询不起作用? [复制]

ORACLE SQL UPDATE 与 INNER JOIN 不起作用

带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用

JPA Left Join IS NULL条件不起作用

sql left join on查询条件不起作用