我想知道是否有办法检查一个表中的某个varchar是否存在于没有连接的另一个表中。我目前正在更新临时表中的字段,具体取决于另一个表中是否存在名称。我已经尝试过使用=,like和in但它们似乎没有用。
这里我的临时表是temp_countries,我想查看各个国家/地区的组织名称是否在我的数据库表组织中退出。
UPDATE temp_countries SET is_good_data = 0
WHERE organization_name NOT IN
(
SELECT DISTINCT o.name
FROM db.country as c
LEFT JOIN db.organization as o
ON c.organization_fk = o.id
WHERE o.name IS NOT NULL
);
我查了一下可能使用GROUP_CONCAT,但我不确定它会在这个实例中起作用
答案 0 :(得分:0)
我在查询中使用了一个连接,所以也许你不接受答案,但我不明白为什么你不会使用连接,也许你真正想要避免的是一个子查询。< / p>
这就是我要做的。关节:
将所有内容设为“错误数据”
UPDATE temp_countries SET is_good_data = 0
然后,如果可以进行连接(暗示o.name不为空且存在于您的数据库中),请将其设置为“good data”
UPDATE
temp_countries tc
INNER JOIN db.organization o o.name = tc.organization_name
INNER JOIN db.country c ON c.organization_fk = o.id
SET tc.is_good_data = 1
现在,如果你真的对关节有个人的悲伤,请忽略我的回答。