2016-07-19 126 views
0

不知道爲什麼它在t2拋出一個錯誤。我試圖運行一個簡單的SQL查詢。 運行於MS-SQL和錯誤消息說,「近T2不正確的語法」左加入子查詢

UPDATE t1 

SET t1.EmpSubCompetency = t2.EmpSubCompetency, 
    t1.Competency = t2.Competency, 
t1.FileName = t2.FileName, 
t1.Longitude = t2.Longitude, 
t1.Latitude = t2.Latitude, 
t1.SubAreaName = t2.Region, 
t1.SectorTag=t2.SectorTagClassification 

FROM dbo.STG_MyCompetencies t1 

LEFT JOIN (select * from dbo.STG_EmployeeMaster where Act_Flg='Y') t2 
+0

如果它引發錯誤,爲什麼不在錯誤信息中包含問題? – HoneyBadger

+5

'ON'子句缺失 –

+0

另外,您正在使用哪些DBMS? MySQL的? SQL Server?甲骨文? –

回答

1

你的問題是缺少ON條款。此外,你並不需要一個子查詢這樣的邏輯:

FROM dbo.STG_MyCompetencies t1 LEFT JOIN 
    dbo.STG_EmployeeMaster t2 
    ON t1.??? = t2.??? AND 
     em.Act_Flg = 'Y' 

需要注意的是不匹配的行會都設置爲NULL的所有列。

???適用於任何用於JOIN的色譜柱。

+0

這工作正常。謝謝。只要檢查一下,只要我們可以避免子查詢總是更好一些? –

+0

@curious_learner。 。 。你不應該使查詢比必要的更復雜。子查詢是不必要的。 –