mysql - 查询只更新一行而不是全部
问题描述
查询说明:有两张表,Invoice和temp。我需要根据发票号码从临时表中获取邮政编码并将它们推送到发票表。
询问:
UPDATE
Invoice
SET
Invoice.zip_code = (SELECT zip_code FROM temp WHERE Invoice.invoice_number = temp.invoice_number)
WHERE
Invoice.invoice_date >= '2017-08-01';
解决方案
您的查询不会完成这项工作 - 因为它不是针对所有记录,而是仅对第一条记录应用一次。
UPDATE Invoice SET zip_code=Temp.zipcode
FROM Invoice INNER JOIN Temp ON
Invoice.invoice_number=Temp.invoice_number
WHERE invoice_date>='2017-08-01'
推荐阅读
- python - 遍历一个 python 字典列表,其中可能包含更多的字典列表等
- vba - MS Access - 记录集 - 循环遍历表并发送电子邮件 - 得到“运行时错误 440:数组索引超出范围
- python - Python不使用sqlite3安装
- python - 如何在 python 中使用 mega api 通过共享 url 列出大型公共文件夹的内容
- azure - 使用共享访问签名时 Azure 创建文件 REST API 的授权请求标头
- java - OpenCV 应用程序 - Android 相机在 10 秒后崩溃
- python - 将 Pillow 字节图像转换为 numpy 数组非常慢
- javascript - 使用 svelte@next 创建 API
- angular - 协助创建模态弹出窗口
- javascript - 如何使用 TypeScript 在 React Native 中使用 forwardRef 和 FunctionComponent