У меня есть следующий код, который возвращает результаты для дочерних организаций (родительских организаций), у которых нет связанных с ними адресов. Однако это возвращает более 2000 строк, со многими из которых связано 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