首页 > 解决方案 > 从 SELECT 语句的字段列表中的子查询返回 COUNT

问题描述

当我运行以下查询时,我想包含一个返回子查询中记录数的 COUNT 的字段。然而,子查询有一个 WHERE 子句,其中该子句中的字段必须与父查询的 SELECT 语句中的字段匹配:

SELECT id, firstName, lastName, 
COUNT(
   SELECT userId, address FROM UserDetails WHERE userId = <id_from_outer_select_statement>
)
FROM Users

我不清楚如何将外部 SELECT 语句中的 id 字段应用于子查询。

标签: sqlsqlite

解决方案


为表指定别名Users并使用它来限定id子查询中的列:

SELECT u.id, u.firstName, u.lastName, 
  (SELECT COUNT(*) FROM UserDetails WHERE userId = u.id) counter
FROM Users u

推荐阅读