首页 > 解决方案 > 如何从另一个表 MySQL 中插入数据

问题描述

我有一个“成员”表:

| id | name | inbox | sent |

我有一个“收件箱”表:

| id | from | to | subyek | message |

我也有一个“发送”表:

| id | to | from | subyek | message |

如何使用收件箱表和已发送表中的数据量填写成员表中的收件箱和已发送字段?

标签: phpmysql

解决方案


对于 中的现有行member,假设tofrom表中的列包含表中 的值,那么我们可以从inbox和中获取相关行的计数,并将计数存储到表中的列中,如下所示: sentidmemberinboxsentmember

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 都只是猜测。

当合适的索引不可用时,相关子查询的性能在大型集合上可能会出现问题。还有其他查询模式可以达到相同的结果。


推荐阅读