【问题标题】:How to resolve subquery by using join condition如何使用连接条件解析子查询
【发布时间】:2016-04-05 21:32:55
【问题描述】:

我有一个 emp 表列作为 deptno,ename,我有一个 dept 表列作为 deptno,dname。在emp表中

Deptno   ename              
10       pavan
20       rav
30       kah
40       pab

在部门表中

deptno   dname
10       sales
20       marketing
30       research
40       sales

Q) 查找与 pavan 具有相同部门名称的任何员工的姓名。如何使用连接条件编写子查询?

【问题讨论】:

    标签: sql sql-server-2008


    【解决方案1】:

    试试这个:

    select ename from 
    emp e
    where e.Deptno = 
    (select deptno from emp 
    where ename='pavan')
    

    SQL Fiddle 演示

    http://sqlfiddle.com/#!3/867b3/12

    【讨论】:

    • 我可以这样写吗? select e.deptno,e.ename from emp_table e,dept_table d where e.deptno=d.deptno and dname=(select dname from dept_table d,emp_table e where e.deptno=d.deptno and ename='pavan')。
    • @user5618269 你为什么要加入dept 表。您的输出不需要它。这个答案会给你想要的。
    【解决方案2】:

    使用JOIN 而不是Sub-query 总是好的。我想,问题是使用JOIN 而不使用Sub-query.

    请执行以下查询:

    SELECT
        E1.Deptno,
        E2.ename 
    FROM Employees E1
        INNER JOIN Employees E2 ON E2.Deptno = E1.Deptno
    WHERE
        E1.ename='pavan'
    

    【讨论】:

      猜你喜欢
      • 2018-06-21
      • 1970-01-01
      • 2014-02-07
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 2021-06-14
      • 1970-01-01
      相关资源
      最近更新 更多