php - 如何从另一个表 MySQL 中插入数据
问题描述
我有一个“成员”表:
| id | name | inbox | sent |
我有一个“收件箱”表:
| id | from | to | subyek | message |
我也有一个“发送”表:
| id | to | from | subyek | message |
如何使用收件箱表和已发送表中的数据量填写成员表中的收件箱和已发送字段?
解决方案
对于 中的现有行member
,假设to
和from
表中的列包含表中 的值,那么我们可以从inbox
和中获取相关行的计数,并将计数存储到表中的列中,如下所示: sent
id
member
inbox
sent
member
UPDATE `member` m
SET m.inbox = ( SELECT COUNT(1) FROM `inbox` i ON i.to = m.id )
, m.sent = ( SELECT COUNT(1) FROM `sent` s ON s.from = m.id )
这个例子是在做各种毫无根据的假设......什么是“数据量”,收件箱和发送表到成员表之间的关系,......
没有示例数据和预期的最终结果,我们只是在猜测规范,我们提出的任何 SQL 都只是猜测。
当合适的索引不可用时,相关子查询的性能在大型集合上可能会出现问题。还有其他查询模式可以达到相同的结果。
推荐阅读
- android - 如何在 AOSP 中将默认位置服务设置为关闭
- angular - 静态组件未在 Angular 中刷新
- node.js - npm:找不到命令centos 7
- python - 无法在 Flask 的 html 标记中使用 url_for 转到另一个页面
- sftp - 使用代理的 RCurl sftp 连接
- java - 在 Java 中的 RedirectView 中设置标题
- java - 从 twitter4j 获取翻译数据
- javascript - WebSocket 适用于 HTML 文件,但在托管网页上失败
- api - ODATA - WebApi:多个实体的补丁请求
- python - 当屏幕变大时,如何自动将滚动条添加到 tkinter 窗口?