【问题标题】:WHERE Clause SAME ID different TABLES vs JOINWHERE 子句 SAME ID different TABLES vs JOIN
【发布时间】:2016-08-17 09:36:50
【问题描述】:

我阅读了几篇帖子,但找不到解决该问题的帖子。在 T-SQL 查询中,我将执行以下操作:

列出(员工姓氏、项目编号、分配的工作) (Employee AND Assignment tables) -- 员工表在哪里 --(员工编号)等于分配表(员工编号)。

这是否需要内部连接,还是可以使用WHERE 子句来完成?

我尝试了以下但得到了模棱两可的错误:

SELECT  
    EMP_LNAME, PROJECT_NUM, ASSIGN_JOB
FROM 
    ASSIGNMENT, EMPLOYEE
WHERE 
    EMP_ID = EMP_ID

【问题讨论】:

标签: sql sql-server inner-join where-clause


【解决方案1】:

您遇到了一个模棱两可的错误,因为您需要为表设置别名。但是要回答您的问题,您当前的查询是旧式的连接,并且会以相同的方式工作。我更喜欢较新的样式inner join,因为它更易于阅读,imo。

SELECT e.EMP_LNAME, a.PROJECT_NUM, a.ASSIGN_JOB 
FROM ASSIGNMENT a,EMPLOYEE e 
WHERE a.EMP_ID = e.EMP_ID

实际上等同于:

SELECT e.EMP_LNAME, a.PROJECT_NUM, a.ASSIGN_JOB 
FROM ASSIGNMENT a
    INNER JOIN EMPLOYEE e ON a.EMP_ID = e.EMP_ID

【讨论】:

    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2022-08-08
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多