我是使用Microsoft SQL Server Management Studio的SQL新手。加入兩個表後的SQL更新
我想寫一個SQL語句,在兩個表連接後執行更新。
我有兩個表:myTable1
和myTable2
。兩者共享一個字段MyID
,這將成爲我加入的領域。 myTable1
包含一個名爲BitToUpdate
的列。 MyTable2包含一個名爲BitToCheck
的列。
我想將BitToUpdate
設置爲myTable1
爲1,其中BitToCheck
的myTable2
也爲1。
以下是我有:
SELECT M.MyID, BitToUpdate, BitToCheck
INTO #temp_table
FROM myTable1 as T1
LEFT JOIN myTable2 as T2
ON M.MyId = PO.MyId
所以首先我想加入這兩個表上其ID myTable1
和myTable2
,並將結果存儲在一個臨時表。
接下來,我想更新BitToUpdate
是1,其中BitToCheck
爲1
所以,我們要做的是,在臨時表,我有:
UPDATE #temp_table
SET
`BitToUpdate` = 1
WHERE
`BitToCheck` = 1
這#temp_table成功更新BitToUpdate
。但是,當我在myTable1
上進行選擇時,我發現BitToUpdate
未更改。我想這是有道理的,因爲#temp_table不是一個真正的「指針」......
但是,接近這個連接和更新的正確方法是什麼?
這是錯誤的,請參閱本 http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query 順序是:更新 - >聯接 - >設置 – Hendyanto 2015-11-18 04:30:11
如果有人關心:上面的查詢沒有錯。在MS SQL中,您可以執行UPDATE - > JOIN - > SET或UPDATE - > SET - > FROM - > JOIN ...甚至UPDATE - > SET - > FROM - > WHERE .. 。 – 2017-10-20 13:53:06