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

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

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

编辑:

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

推荐答案

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

Sql相关问答推荐

仅向自己显示受惩罚用户的聊天消息

PostgresQL查询以计算一天内的时间间隔

js数量限制

SQL - 标记行直到每组的0值

如何获得给定时间段的最小值

获取日期范围之间的可用日期

在蒸汽流利中查找所有具有空多对多关系的项目

SQL 查询通过其特定的最新操作查找用户

如何使用 group by 检索不同的数据

作为子查询一部分的 SQL 列的运行总计

SQL 从调查中查找课程受欢迎程度

用于排除特定邮箱域的 Where 子句

Postgres 大表 Select Query With In 子句的最优索引选择

PostgreSQL 中的单引号和双引号有什么区别?

假设星期从星期一开始,从 PostgreSQL 的日期字段中提取星期几

Google Electron 表格“=QUERY”join() 等效函数?

ORA-01791: 不是 SELECTed 表达式

如何选择表格中除一列以外的所有列?

使用 LIMIT/OFFSET 运行查询并获取总行数

Postgresql 为每个 id 提取最后一行