我这里有一个sql代码。我试图离开连接两个表,如果没有匹配,我想更改第一个表的状态代码进行更改。
Update pbmsys.dbo.mhj_tmp_list
SET
a.status_cd = 'I'
FROM
pbmsys.dbo.mhj_tmp_list a
LEFT JOIN
staging.dbo.delity_List1 b
ON
a.drug_id = b.drug_id
where
a.mac_id = 154 and b.drug_id is null
我收到错误
"多部分标识符" a.status_cd"无法受约束。"
列在表格中。我该如何解决?我正在为我想要实现的目标编写错误的代码吗?
谢谢!
答案 0 :(得分:1)
你有:
Update pbmsys.dbo.mhj_tmp_list
SET
a.status_cd = 'I'
FROM
pbmsys.dbo.mhj_tmp_list a
LEFT JOIN
staging.dbo.delity_List1 b
ON
a.drug_id = b.drug_id
where
a.mac_id = 154 and b.drug_id is null
你应该:
Update a --<-- this is the alias of the table pbmsys.dbo.mhj_tmp_list
SET
a.status_cd = 'I'
FROM
pbmsys.dbo.mhj_tmp_list a --<-- this is the alias of the table pbmsys.dbo.mhj_tmp_list
LEFT JOIN
staging.dbo.delity_List1 b
ON
a.drug_id = b.drug_id
where
a.mac_id = 154 and b.drug_id is null
错误的原因是您已在pbmsys.dbo.mhj_tmp_list
的{{1}}部分中为a
表提供了FROM
,而您要更新的列是{{ 1}}但是在UPDATE
部分中您有a.status_cd
而不是别名UPDATE