php - 从不同的表数据更新表行不起作用
问题描述
我的数据库中有两个表。一个叫wp_tickets
,另一个叫wp_tickets_regenerated
。
如果匹配,我正在尝试wp_tickets_regenerated
从表中更新表中的一些数据,因此我最终得到一个新表,其中为该产品下的每个订单生成了不同的票号。wp_tickets
lottery_id
到目前为止,我的代码抛出了一个错误:
WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM wp_tickets
WHERE lottery_id = wp_tickets.lottery_id' at line 6 for query UPDATE wp_tickets_regenerated
有人可以帮忙吗?
wp_tickets 表
+---------+-----------+-----------+---------------+----------+------------+
| user_id | full_name | answer_id | ticket_number | order_id | lottery_id |
+---------+-----------+-----------+---------------+----------+------------+
| 0 | test | 1 | 3 | 791 | 790 |
+---------+-----------+-----------+---------------+----------+------------+
| 0 | test | 1 | 5 | 791 | 790 |
+---------+-----------+-----------+---------------+----------+------------+
| 0 | test | 1 | 10 | 791 | 790 |
+---------+-----------+-----------+---------------+----------+------------+
wp_tickets_regenerated
+---------+-----------+-----------+---------------+----------+------------+
| user_id | full_name | answer_id | ticket_number | order_id | lottery_id |
+---------+-----------+-----------+---------------+----------+------------+
| | | | 1 | | 790 |
+---------+-----------+-----------+---------------+----------+------------+
| | | | 2 | | 790 |
+---------+-----------+-----------+---------------+----------+------------+
| | | | 3 | | 790 |
+---------+-----------+-----------+---------------+----------+------------+
到目前为止我所拥有的是:
$wpdb->query(
'UPDATE wp_tickets_regenerated
SET user_id = wp_tickets.user_id,
full_name = wp_tickets.full_name,
answer_id = wp_tickets.answer_id,
order_id = wp_tickets.order_id
FROM wp_tickets
WHERE lottery_id = wp_tickets.lottery_id'
);
解决方案
您需要一个内部连接表wp_tickets
进行更新
尝试这个
UPDATE wp_tickets_regenerated
INNER JOIN wp_tickets ON wp_tickets_regenerated.lottery_id = wp_tickets.lottery_id
SET wp_tickets_regenerated.user_id = wp_tickets .user_id,
wp_tickets_regenerated.full_name = wp_tickets .full_name,
wp_tickets_regenerated.answer_id = wp_tickets .answer_id,
wp_tickets_regenerated.order_id = wp_tickets .order_id
WHERE wp_tickets_regenerated.lottery_id = wp_tickets.lottery_id'
希望对你有帮助
推荐阅读
- powershell - 在 Asp.Net Core 2 中使用 powershell 修改 web.config
- php - PHP Curl Json 或 XML 返回到数组
- javascript - 使用 Puppeteer 选择 href 属性
- c# - 需要 Level Order Traversion 帮助,出现错误
- unity3d - 如何避免 GameObject 滚动传播到 RTSCamera 缩放
- python - 列表理解中的生成器表达式未按预期工作
- android - 如何像垂直 Viewpager 变换一样为 RecyclerView 设置动画
- java - 从 postgres 数据库中获取二进制图像数据并保存在文件夹中
- jpa - 与他人共享 OneToMany 的最佳做法是什么?
- c# - PDF4Net:段落最后一行的文本对齐