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

SQL:如何按值计算多个表中的条目?,sql,Sql,我有两张表,问题和字段。我需要对条目进行计数,其一致值为template\u id(两个表都包含) 请指教,怎么做 select count(q.*) from question q left join field f on f.template.id = q.template_id 在StackOverflow中,人们应该展示自己的尝试,展示一些努力已经完成 上面的内部连接可能就是您的意思。首先尝试选择q.*,f.*如果您想在两个表中计算不同的模板id,请使用JOIN和count(disti

我有两张表,
问题
字段
。我需要对条目进行计数,其一致值为
template\u id
(两个表都包含)

请指教,怎么做

select count(q.*)
from question q
left join field f on f.template.id = q.template_id
在StackOverflow中,人们应该展示自己的尝试,展示一些努力已经完成

上面的
内部连接
可能就是您的意思。首先尝试
选择q.*,f.*

如果您想在两个表中计算不同的
模板id
,请使用
JOIN
count(distinct)

SELECT 
    COUNT(*) AS TotalRecords

FROM question q
    INNER JOIN field f ON f.template_id = q.template_id
如果使用
count(*)
将获得匹配行的计数,而不是
template\u id
s,因此重复将影响结果

如果已知
template\u id
在其中一个表中是唯一的(比如
question
),则
存在可能更有效:

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

你能详细说明一下这个要求吗(可以举个例子)?这里的巧合值是什么意思?另外,请提及您使用的是哪个数据库?您使用的是哪个
RDBMS
?如果您向我们展示了您已经完成的工作,或者至少描述了表以及存在外键的位置,这会有所帮助。而这个代码片段可能会解决问题,包括一个解释确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!谢谢,我会在以后的帖子中记住这一点。
select count(*)
from question q
where exists (select 1
              from field f
              where f.template_id = q.template_id
             );