我有两个表。表 1 包含客户信息表2有预订信息表 1 将客户电子邮件作为主键,表 2 也有客户电子邮件。
我正在尝试创建一个SQL语句来更新表2中的字段值(例如P),其中表1的所有字段都具有某个值,并且表1的CustomerEmail等于表2。
我以前没有使用过UPDATE,并且是使用JOIN的新手。目前我已经尝试了这样的事情:
UPDATE Table 2 SET P='Yes'
LEFT JOIN Table 1 On Table2.CustomerEmail=Table1.CustomerEmail
WHERE Table1.value1='something1'
AND Table1.value2='something2' up to 14 values etc...
是与订单有关还是我完全弄错了?
你可以像这样使用 EXISTS():
UPDATE Table2
SET P='Yes'
WHERE EXISTS(select 1 from Table1
WHERE Table2.CustomerEmail=Table1.CustomerEmail
AND Table1.value1='something1'
AND Table1.value2='something2'
AND....)
这将检查表1中是否存在具有相同id和所有列值的行,如果是,它将更新该行。
我使用了 sagi 评论的存在函数,它工作正常,谢谢!