我試圖更新列,而將其加入到另一個表。我用下面的查詢,但它給了我錯誤。如何在連接兩個表時更新Sql Server表列?
UPDATE TABLE_2
INNER JOIN
TABLE_1
ON (T2.ID=T1.ID)
SET TABLE_2.DEPT='HUMAN RESOURCE'
WHERE TABLE_2.DEPT='HR'
AND T1.COMPANY =1
任何人都可以幫助我嗎?
謝謝。
我試圖更新列,而將其加入到另一個表。我用下面的查詢,但它給了我錯誤。如何在連接兩個表時更新Sql Server表列?
UPDATE TABLE_2
INNER JOIN
TABLE_1
ON (T2.ID=T1.ID)
SET TABLE_2.DEPT='HUMAN RESOURCE'
WHERE TABLE_2.DEPT='HR'
AND T1.COMPANY =1
任何人都可以幫助我嗎?
謝謝。
首先,您使用的表別名並沒有在任何地方定義(T2
,T1
等),這可能很好地解決您的問題。否則,正確的語法非常依賴於SQL風格。
例如,在SQL Server中的語法是
UPDATE T2
SET T2.dept = 'HUMAN RESOURCE'
FROM Table2 T2
INNER JOIN Table1 T1
ON T1.[ID] = T2.[ID]
雖然你甚至都不需要參加這裏真的,你只是想
UPDATE Table2 T2
SET T2.dept = 'HUMAN RESOURCE'
WHERE EXISTS(SELECT * FROM Table1 T1
ON T1.[ID] = T2.[ID])
在MySQL中的語法是
UPDATE FROM TABLE2 AS T2
INNER JOIN TABLE1 as T1
ON T2.id = T1.id
SET T2.Dept = 'Human Resources'
當然,WHERE EXISTS
的方法也適用於MySQL
UPDATE FROM Table2 AS T2
SET Dept="Human Resources"
WHERE EXISTS (SELECT * FROM Table1 T1
ON T1.[ID] = T2.[ID]);
謝謝!有用! – vamps
@vamps太棒了!樂於幫助,並歡迎Stack Overflow。 –
如果是MSSQL,那麼查詢應該是
UPDATE TABLE_2 SET DEPT='Human Resource'
FROM TABLE_1
WHERE TABLE_2.ID = TABLE_1.ID
AND TABLE_2.DEPT = 'HR'
AND TABLE_1.COMPANY = 1
UPDATE TABLE_2 SET DEPT='Human Resource' FROM TABLE_1,Table2 WHERE TABLE_2.ID = TABLE_1.ID AND TABLE_2.DEPT = 'HR' AND TABLE_1.COMPANY = 1
因爲當我們在加入則更新表我們從接近
嘗試用用這兩個表左或右連接而不是內連接。 – Addicted
是Oracle,MySQL還是Sql Server? – codingbiz
我正在使用SQL Server.and我試過使用內連接,左連接。但它不起作用。@ M_M解決了這個問題。檢查下面的答案。 – vamps