Sql 根据两个表中匹配的记录更新列?
我们正在使用SQL Server 2016。我有两张表,Sql 根据两个表中匹配的记录更新列?,sql,sql-server,database,Sql,Sql Server,Database,我们正在使用SQL Server 2016。我有两张表,DEAD和QUETABLE。但是,QUETABLE也有一个名为DEAD的列。这听起来会让人困惑,但我会尽量让它有意义。我需要做的是将QUETABLE中的列(DEAD)设置为YES,如果QUETABLE中的列WEBSITE与表DEAD中相同的命名列WEBSITE匹配 (表中的DEAD刚刚充满了死网站,QUETABLE可能有一些死网站,标记它会让我们知道) 在一个神奇的世界里,像这样的东西会起作用: UPDATE QUETABLE SET [
DEAD
和QUETABLE
。但是,QUETABLE
也有一个名为DEAD
的列。这听起来会让人困惑,但我会尽量让它有意义。我需要做的是将QUETABLE
中的列(DEAD
)设置为YES
,如果QUETABLE
中的列WEBSITE
与表DEAD
中相同的命名列WEBSITE
匹配
(表中的DEAD
刚刚充满了死网站,QUETABLE
可能有一些死网站,标记它会让我们知道)
在一个神奇的世界里,像这样的东西会起作用:
UPDATE QUETABLE
SET [DEAD] = 'YES'
WHERE
SELECT de.website, de.[city], de.[state], de.[zip], de.[new-ind], de.phone
FROM [QUETABLE] de
WHERE EXISTS (SELECT website, company, zip
FROM dead d2
WHERE d2.website = de.website OR d2.state = de.state OR d2.zip = de.zip)
但很明显,这不可能发生,我也不知道该怎么做 我想你只是想:
UPDATE de
SET [DEAD] = 'YES'
FROM [QUETABLE] de
WHERE EXISTS (SELECT website, company, zip
FROM dead d2
WHERE d2.website = de.website OR d2.state = de.state OR d2.zip = de.zip
);
我想你只是想:
UPDATE de
SET [DEAD] = 'YES'
FROM [QUETABLE] de
WHERE EXISTS (SELECT website, company, zip
FROM dead d2
WHERE d2.website = de.website OR d2.state = de.state OR d2.zip = de.zip
);
哦,我想我必须先选择QUETABLE中的表。你说得对!谢谢你,我觉得很傻@纳苏。对于
“是”
,您想要的存在。你的文章只提到了网站
,但你可能想在其他栏目上进行同样的检查。哦,我意识到我做错了什么。我的结果出人意料,所以我怀疑自己。非常感谢你!!90分钟内我不能再问其他问题了,但我有一个相关的问题,如果你能帮忙,我会通知你的!这里的问题:。我尝试将空值设置为其他值,但在“SET[USED]='NULL'where[USED]!='YES'”@Natsu中也不起作用(没有更改)。正如您所猜测的,这个问题的问题是NULL
值。它们失败了
以及=
。哦,我想我必须先选择QUETABLE中的表。你说得对!谢谢你,我觉得很傻@纳苏。对于“是”
,您想要的存在。你的文章只提到了网站
,但你可能想在其他栏目上进行同样的检查。哦,我意识到我做错了什么。我的结果出人意料,所以我怀疑自己。非常感谢你!!90分钟内我不能再问其他问题了,但我有一个相关的问题,如果你能帮忙,我会通知你的!这里的问题:。我尝试将空值设置为其他值,但在“SET[USED]='NULL'where[USED]!='YES'”@Natsu中也不起作用(没有更改)。正如您所猜测的,这个问题的问题是NULL
值。它们会失败
以及=
。