WHERE 子句 SAME ID 不同的 TABLES 与 JOIN

WHERE Clause SAME ID different TABLES vs JOIN

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

list the (employee last name, project number, assigned job from the (Employee AND Assignment tables) -- where the employee table –(employee number) is equal to the assignment table (employee number).

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

我尝试了以下但返回了不明确的错误:

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

您遇到了一个不明确的错误,因为您需要为表设置别名。但要回答您的问题,您当前的查询是进行连接的旧式查询,并且工作方式相同。我更喜欢更新的样式 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