有没有办法让一列等于另一个表中所有行的计数,其中id =当前行中的一列?
例如。
我希望table1.count自动填充table2中table2.table1_id = table1.id
(它的父母有一个关系)。
显然我可以用php做到这一点,我只想到这将比每次页面加载时不断使用php重新计算这个更快。感谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
假设table1.id
是唯一键,您可以执行以下操作:
REPLACE INTO table1 (id, count)
SELECT table1_id, COUNT(*)
FROM table2
GROUP BY table1_id
答案 2 :(得分:0)
使用视图和表table1_data
,您可以这样做:
CREATE VIEW table1 AS
SELECT table1_data.*, COUNT(*) AS count
FROM table1_data, table2
WHERE table1_data.id = table2.table1_id
GROUP BY table1_data.id
这将从table1_data
获取所有数据,按照您的描述添加列count
,并将结果显示为一个视图,在大多数情况下可以像表一样使用。
答案 3 :(得分:0)
您可以使用触发器实现此“自动”效果,当然,如果您的数据库引擎支持它们。 您需要在table_data,onInsert()和onDelete()上建立2个触发器。