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
);