【发布时间】:2011-11-16 18:35:13
【问题描述】:
我有两张桌子:
1) 流
2) 评论
在 Streams 内部,我想创建一个 Comments 列。我希望根据匹配 StreamId 的评论数量计算 Streams 表中的评论列。
有没有一种简单的方法可以改变当前的 Streams 表?谢谢。
【问题讨论】:
标签: sql sql-server calculated-columns
我有两张桌子:
1) 流
2) 评论
在 Streams 内部,我想创建一个 Comments 列。我希望根据匹配 StreamId 的评论数量计算 Streams 表中的评论列。
有没有一种简单的方法可以改变当前的 Streams 表?谢谢。
【问题讨论】:
标签: sql sql-server calculated-columns
如果您想要一个“真实”的列值,请考虑使用触发器。不过,另一种选择可能是计算此字段的视图 - 如果您根据主键值计算 cmets,它应该是一个非常快速的计算。
【讨论】:
你可以使用
-- be careful, I do asume lot of field names
create view withCount as
select s.*, c.cant
from Streams s
left join
(select Streams_ID, count(*) as cant from Comments group by Streams_ID) as c
on s.id = c.Streams_ID
然后
select * from withCount where ... order by ... // or whatever you want
不要对这个任务使用触发器,它们更难维护和理解
【讨论】: