我有以下代码返回没有关联地址的子组织(父组织)的结果。但是,这会返回 2,000 多行,其中许多行有 0 或 1 个与之关联的帐户。
我想做的是编辑查询以仅显示与子组织关联的帐户数量为 2 或更多的结果。
在我们的数据库中,在 JOIN 语句中关联帐户和组织表的主键是:
organizations.id = accounts.organization_id
并且帐户表上的主键是accounts.id
我试图弄清楚这一点无济于事。如果有人可以帮助提供解决方案,将结果限制为仅帐户数量等于或大于 2 的子组织。
SELECT DISTINCT
organizations.id AS org_id,
organizations.name AS org_name,
parent.id AS parent_org_id,
parent.name AS parent_org_name
FROM
organizations
INNER JOIN organizations parent
ON
organizations.parent_org_id = parent.id
LEFT JOIN addresses sub_addresses
ON
sub_addresses.addressable_type = 'Organization'
AND sub_addresses.is_current = 1
AND sub_addresses.addressable_id = organizations.id
LEFT JOIN addresses p_addresses
ON
p_addresses.addressable_type = 'Organization'
AND p_addresses.is_current = 1
AND p_addresses.addressable_id = parent.id
WHERE
sub_addresses.id is null
ORDER BY
parent.name,
organizations.name