SQL:如何按值计算多个表中的条目?

时间:2019-06-06 06:47:13

标签: sql

我有两个表questionfield。我需要对条目进行计数,它们的巧合值为template_id(两个表都包含)。

请咨询,怎么做?

3 个答案:

答案 0 :(得分:1)

select count(q.*)
from question q
left join field f on f.template.id = q.template_id

在StackOverflow中,应该显示自己的尝试,表明已经做了一些努力。

inner join上方可能是您的意思。首先尝试select q.*, f.*

答案 1 :(得分:0)

SELECT 
    COUNT(*) AS TotalRecords

FROM question q
    INNER JOIN field f ON f.template_id = q.template_id

答案 2 :(得分:0)

如果要在两个表中计数 distinct template_id,请使用JOINCOUNT(DISTINCT)

select count(distinct q.template_id)
from question q join
     field f
     on f.template_id = q.template_id;

如果使用count(*),您将获得匹配的而不是template_id的计数,因此重复将影响结果。

如果已知template_id在其中一个表中是唯一的(例如question),则exists可能更有效:

select count(*)
from question q
where exists (select 1
              from field f
              where f.template_id = q.template_id
             );