表格1
medicineid bmi
1 null
2 null
3 null
4 null
5 null
表2
medicineid bmi
3 null
5 null
---- ---- OUTPUT
medicineid bmi
1 null
2 null
3 no
4 null
5 no
您可以在这些表上进行内部联接以及更新,如下所示,我假设如果记录存在于table2中,那么我们希望将table1 bmi更新为“no”
Update t1
set bmi = 'no'
from Table1 t1
inner join Table2 t2 on t1.medicineid = t2.medicineid
不清楚你在问什么,你想改变table1的内容吗? 一个简单的更新语句就可以做到
update table1
set bmi = 'no'
where medicineid in (select medicineid from table2)
CREATE TABLE ##Table1 (medicineid INT, bmi VARCHAR(50))
CREATE TABLE ##Table2 (medicineid INT, bmi VARCHAR(50))
INSERT INTO ##Table1 VALUES
(1, null),(2, null),(3, null),(4, null),(5, null)
INSERT INTO ##Table2 VALUES
(3, null),(5, null);
UPDATE ##Table1
SET ##Table1.bmi = 'no'
FROM ##Table1 SI
INNER JOIN ##Table2 RAN
ON SI.medicineid = RAN.medicineid;
----------------------------------------------
-- Answer
SELECT
A.medicineid,
A.bmi
FROM ##Table1 A
LEFT JOIN ##Table2 B
ON A.medicineid=B.medicineid
我会用EXISTS
和UPDATE
声明:
UPDATE t1
SET t1.bmi = 'no'
FROM Table1 t1
WHERE EXISTS (SELECT 1 FROM Table2 t2 WHERE t2.medicineid = t.medicineid);