我是 SQL 新手,使用 Microsoft SQL Server Management Studio。
我正在尝试编写一个在两个表连接后执行更新的 SQL 语句。
我有两张桌子:myTable1
和myTable2
。两者共享一个领域MyID
,这将是我加入的领域。myTable1
包含一个名为 的列BitToUpdate
。MyTable2 包含一个名为BitToCheck
.
我想设置BitToUpdate
为myTable1
1,其中BitToCheck
inmyTable2
也是 1。
这是我所拥有的:
SELECT M.MyID, BitToUpdate, BitToCheck
INTO #temp_table
FROM myTable1 as T1
LEFT JOIN myTable2 as T2
ON M.MyId = PO.MyId
所以首先我尝试加入这两个表myTable1
和myTable2
它们的 ID,并将结果存储在一个临时表中。
接下来,我想更新BitToUpdate
为 1,其中BitToCheck
1。
所以要在临时表中做到这一点,我有:
UPDATE #temp_table
SET
`BitToUpdate` = 1
WHERE
`BitToCheck` = 1
这将BitToUpdate
成功更新#temp_table。但是,当我对 进行选择时myTable1
,我发现它BitToUpdate
没有改变。我想这是有道理的,因为 #temp_table 并不是真正的“指针”......
但是,处理这种加入和更新的正确方法是什么?