具有两个表的Mysql UPDATE查询

标签 mysql

我想运行这个查询:

UPDATE up SET up.pts = uc.checkin_worth WHERE uc.email = up.email AND uc.company_id = up.company_id AND uc.email = 'test@gmail.com' AND uc.company_id = ' 4' AND uc.qrcode = 'j'

但是,我收到一个错误,因为我不知道如何在 UPDATE 查询中合并两个表(uc 和 up)。

谁能帮我解决这个问题?

谢谢,

最佳答案

只需使用普通的 JOIN 语法:

UPDATE up JOIN uc ON uc.email = up.email AND uc.company_id = up.company_id
SET up.pts = uc.checkin_worth
WHERE uc.email = 'test@gmail.com' AND uc.company_id = '4' AND uc.qrcode = 'j'

您还可以使用旧的逗号语法,它更类似于您的原始查询:

UPDATE uc, up
SET up.pts = uc.checkin_worth
WHERE uc.email = up.email
AND uc.company_id = up.company_id
AND uc.email = 'test@gmail.com'
AND uc.company_id = '4'
AND uc.qrcode = 'j'

关于具有两个表的Mysql UPDATE查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048545/

相关文章:

mysql - 如何修复带有连接的sql语句?

php - 许多记录是 Varchar 还是 int?

mysql - 字段列表中的未知表(vb.net 中的 MySQL)

mysql - 使用联合从多个表中选择计数相关行

python - 如何处理 CMS 中的时区?

php - 为什么 MySQLi 阻止我的页面的其余部分解析并停止我的 PHP 脚本?

php - 从 TeSTLink 按下保存按钮时未触发 onClick

mysql - 如何设计这种多对多的数据库?

php - ajax登录成功数据但不重定向到索引页面

PHP 显示每个 div 的一定数量的记录