2016-04-23 43 views
0

我閱讀了幾個帖子,但找不到解決該問題的帖子。在T-SQL查詢,我要做到以下幾點:WHERE子句SAME ID不同表格與JOIN

列表(員工最後一個名稱,項目編號,從 (EMPLOYEE和分配表指定的作業) - 在僱員表 - (員工數量)等於分配表(員工數量)

這是否需要一個內部聯接,或者可以將其與WHERE條款進行

我嘗試以下,但回來曖昧的錯誤。?:

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

[不良習慣踢:使用舊樣式的JOIN(http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08 /bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號分隔的表*樣式列表被替換爲ANSI中的* proper * ANSI'JOIN'語法* * 92 ** SQL標準(**超過20年**之前),其使用是不鼓勵的 –

回答

5

您得到了一個模糊的錯誤,因爲您需要別名表。但是要回答你的問題,你當前的查詢是做舊連接的舊樣式,並且工作原理是一樣的。我更喜歡更新的風格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