计数联接表

弗拉迪斯拉夫·奥夫恰连科

我有两个桌子tblFuneralHomestblFuneralTransactions一个表可能有许多事务。我需要返回用户的funeralHomes交易并计数交易,但是如果funeralHomes没有交易,则不会返回结果。

Select tfh.funeral_home_guid, tfh.funeral_home_name, tfh.reference_key, count(tft.id) as counts from tblFuneralHomes tfh
inner join tblFuneralTransactions tft on tft.funeral_home_guid = tfh.funeral_home_guid where (tft.canceled=0 and tft.completed=0)
and tfh.funeral_home_guid in (select funeral_home_guid 
from tblDirectorHomes
where director_id = '1789a3ae-95e5-4719-ac09-bd1ada01dd5b') 
group by tfh.funeral_home_guid, tfh.funeral_home_name, tfh.reference_key

这是没有加入的结果 在此处输入图片说明

我知道当前用户有3个funeralHomes

但是,当我加入交易并计算在内时,其中一个房屋没有交易,也没有显示。

在此处输入图片说明

塞巴斯蒂安·布罗斯(Sebastian Brosch)

您必须使用LEFT JOIN而不是,INNER JOIN因此记录了的所有记录tblFuneralHomes

SELECT tfh.funeral_home_guid, tfh.funeral_home_name, tfh.reference_key, COUNT(tft.id) AS counts 
FROM tblFuneralHomes tfh LEFT JOIN tblFuneralTransactions tft ON tft.funeral_home_guid = tfh.funeral_home_guid 
WHERE (tft.funeral_home_guid IS NULL OR (tft.canceled = 0 AND tft.completed = 0))
    AND tfh.funeral_home_guid IN (
        SELECT funeral_home_guid 
        FROM tblDirectorHomes
        WHERE director_id = '1789a3ae-95e5-4719-ac09-bd1ada01dd5b'
    )
GROUP BY tfh.funeral_home_guid, tfh.funeral_home_name, tfh.reference_key

tblFuneralTransactionsWHERE条件使用的列如果的记录tblFuneralHomes没有tblFuneralTransactions(不可用)tblFuneralTransactions记录的所有列值都是NULL因此,以下条件为假:tft.canceled = 0 AND tft.completed = 0

要包括所有记录的tblFuneralHomes,你需要允许的列tblFuneralTransactionsNULL所以你必须替换这种情况

(tft.canceled = 0 AND tft.completed = 0)

到以下

(tft.funeral_home_guid IS NULL OR (tft.canceled = 0 AND tft.completed = 0))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从内部联接表获取计数

来自分类Dev

SQL计数表联接表

来自分类Dev

从内部联接表获取计数

来自分类Dev

左联接和表计数

来自分类Dev

根据计数联接3个表

来自分类Dev

对联接表进行分组和计数

来自分类Dev

左联接不同的表和计数

来自分类Dev

Rails查询联接到内部表计数

来自分类Dev

联接两个表并计数

来自分类Dev

MySQL从表中获取计数(*)与联接

来自分类Dev

Rails:联接表并按计数分组

来自分类Dev

联接三个表并计数

来自分类Dev

MySQL两表内部联接和计数

来自分类Dev

如何联接2个表,但结果计数与表a相同

来自分类常见问题

使用Sequalize按联接表计数列排序

来自分类Dev

SQL在联接表上计数唯一的真实值

来自分类Dev

sql-从多个联接表中获取匹配行的计数

来自分类Dev

SQL Server Pivot用于计数联接表中的实例

来自分类Dev

如何从两个联接表中查找计数

来自分类Dev

Rails ActiveRecord按联接表关联计数排序

来自分类Dev

多个表上的内部联接,计数且不同

来自分类Dev

仅凭联接条件从单个表中检索不同的计数

来自分类Dev

MySQL选择使用组和计数联接表

来自分类Dev

如何通过联接两个表来计数

来自分类Dev

在SQL中联接多个表后如何计数记录

来自分类Dev

通过联接表选择其他列的计数(Oracle SQL)

来自分类Dev

仅获得具有特定联接表计数的用户

来自分类Dev

如何从两个联接表中查找计数

来自分类Dev

如何获取SQL Server中的联接表的计数?