2016-05-15 47 views
2

我在表A中有多个条目,并希望显示表B中某个条目的条目数。是否有创建动态单元内容显示的方法表中的条目数量?显示第二个表中的条目数的动态值

我是MySQL的初学者,到目前为止还没有找到办法。

示例表答:

+----+------+------------+ 
| id | name | birthday | 
+----+------+------------+ 
| 1 | john | 1976-11-18 | 
| 2 | bill | 1983-12-21 | 
| 3 | abby | 1991-03-11 | 
| 4 | lynn | 1969-08-02 | 
| 5 | jake | 1989-07-29 | 
+----+------+------------+ 

我想什么表B:

+----+------+----------+ 
| id | name | numusers | 
| 1 | tblA |  5 | 
+----+------+----------+ 

在我实际的数据库没有递增的ID,因此只是把最后一个值是行不通的 - 如果这将是一个解决方案。

如果MySQL无法处理这个选项,我会在服务器上创建一些cronjob,读取行数并将其写入该单元格。我知道如何做到这一点 - 只是检查是否有另一种方式。

我不在寻找一个命令在mysql控制台上运行。我试图弄清楚的是,如果有一些选项可以动态改变单元格的价值,我已经在上面描述过了。

+0

你用'count(*)'来试试吗? – trincot

+1

[获取MySQL数据库中所有表的记录数]的可能重复(http://stackoverflow.com/questions/286039/get-record-counts-for-all-tables-in-mysql-database) – trincot

+0

这将是大概是我的cronjob会是什么样子。然而,我的实际问题是:这可能没有输入任何东西到控制台(或写一个脚本,这对我来说)?例如。将该命令作为单元格的值或其他内容。 – chris137

回答

1

您可以创建一个视图来提供此信息。该视图的SQL被an answer to a similar question启发:

CREATE VIEW table_counts AS 
SELECT table_name, table_rows 
    FROM information_schema.tables 
WHERE table_schema = '{your_db}'; 

的观点将有你说的细胞。正如你所看到的,它只是一个已经存在的表格的过滤器,所以你可能会认为这个表格information_schema.tables是你的问题的答案。

+0

这是最接近我正在寻找。我想没人理解我真正想要的东西,因为这是完全废话。意识到我睡过之后。感谢您的解决方案。现在使用它! – chris137

0

您可以直接用COUNT()来做到这一点,例如SELECT COUNT(*) FROM TblA您可以从该表中获取所有行。如果你的IDX确定,那么它非常快。如果您将其写入另一个表格,则必须提出请求以获取第二个表格的结果。所以我认为你可以直接做。

如果您有一些性能问题,还有一些其他可能性,如TriggersStored Procedures来计算该结果并将它们保存在内存表中以获得更好的性能。

相关问题