从另一个表添加计数以使用内部联接进行查询

问题描述 投票:0回答:2

我有以下查询:

SELECT 
    * 
FROM `SAS_applications` 
INNER JOIN `SAS_forms` on SAS_applications.form_id = SAS_forms.fid 
ORDER BY SAS_applications.id DESC 
LIMIT 10;

和以下SQLite设置:enter image description here

此查询工作正常,但在添加另一个表以包含回复/注释后,我遇到了一些困难,计算每个“应用程序”的一部分有多少注释。

enter image description here

我试图找到一种方法,我可以计算(*)SAS_comments中的条目数量与原始查询中每个返回的相同form_id,我可以通过执行单独实现这一点

SELECT count(*) FROM `SAS_comments` WHERE form_id = 1

有谁知道我怎么能做到这一点?我尝试了各种连接和嵌套,但我的SQL语法知识并不是最好的。

sql sqlite
2个回答
1
投票

你可以使用correlated subquery

SELECT *,
       (SELECT count(*) FROM SAS_comments WHERE form_id = SAS_forms.fid)
FROM ...

0
投票

您需要再使用SAS_comments,Count和Group By,并且您的代码应该接近于此

SELECT 
    count(`SAS_comments`.form_id), `SAS_comments`.id
FROM `SAS_applications` 
INNER JOIN `SAS_forms` on SAS_applications.form_id = SAS_forms.fid 
JOIN `SAS_comments` on `SAS_forms`.form_id = `SAS_comments`.form_id
GROUP BY `SAS_comments`.id
ORDER BY SAS_applications.id DESC 
© www.soinside.com 2019 - 2024. All rights reserved.