我不知道该怎么表达,所以也请帮我写一下标题.:)

我有两张桌子.我们叫他们AB.B表有一个指向A.ida_id外键.现在我想写一个SELECT语句,它获取所有A条记录,另外一列包含结果集中每行每AB条记录的计数.

我现在正在使用Postgresql 9,但我想这是一个通用的SQL问题?

编辑:

最后,我 Select 了触发器缓存解决方案,每次B发生变化时,A.b_count都会通过一个函数进行更新.

推荐答案

SELECT A.*, (SELECT COUNT(*) FROM B WHERE B.a_id = A.id) AS TOT FROM A

Sql相关问答推荐

在postgres中动态计算出现次数并插入到json中

基于多个字段删除Access中的重复记录,同时保留最低优先级

为表中每个缺少的引用创建新行

计算分段的总权重

一个SQL查询将在需要的地方多次返回同一成员

基于多列比较连接两个表

SQL计数条目大于日期,包括交叉表中的零

仅当交叉应用返回单值时才更新记录

在MS Access Modern图表的X轴上显示时间值时遇到问题

如何根据行状态设置正确的标志

在SQL中转换差异表的多列

将 jsonb 数组中的对象取消嵌套到单独的行中

SAS proc freq 或 proc sql 获取数据子集和整个数据的频率

如何为 ActiveRecord 联接应用附加条件

SQL Server:时态表并在运行时添加计算列

如何在 RavenDB Studio (RQL) 中插入更新文档

来自 SQL Server 的树层次 struct 图的 JSON

Oracle SQL 查询自行运行,但在包装到select count(*) from ()时失败

SQL 按百分比递减总和

Pyspark - 即使在谓词被下推之后,与扫描后应用的谓词相同的过滤器