【发布时间】:2014-01-14 12:29:42
【问题描述】:
是否可以像这样比较子查询计数结果:
SELECT
c_contact.id,
c_contact.name,
c_contact.firstnames,
c_contact.securityid
FROM c_monitoring
JOIN c_contact ON c_contact.securityid = c_monitoring.securityid
JOIN c_ln_event_debtor ON c_ln_event_debtor.f_contact = c_contact.id
JOIN c_event ON c_event.id = c_ln_event_debtor.f_event
WHERE
(
SELECT count(c_event.id)
FROM c_event
WHERE c_event.id = c_ln_event_debtor.f_event
AND c_event.f_status IN(50,51,52)
) = (
SELECT count(c_event.id)
FROM c_event
WHERE c_event.id = c_ln_event_debtor.f_event
)
GROUP BY
c_monitoring.securityid
只有当所有引用 c_event 行的 f_status 为 50 或 51 或 52 时,我才希望将行设置为结果集。我试过这个但没有运气。
【问题讨论】:
-
你试过运行这个吗?
-
这当然是错误的,但是对于您的预期结果,来自 c_event 和 c_ln_event_debtor 的行是否应该与当前的 c_monitoring/c_contact 相关?
-
你真的需要通过COUNTing来做吗? WHERE NOT EXISTS 怎么样(Select ... WHERE f_status not in (50,51,52))
-
@Rachcha 是的,我有。不工作。
-
@regilero c_monitoring 对 c_contact 的引用。 C_contact 引用 c_ln_event_debtor。 C_ln_event_debtor 引用 c_event
标签: mysql count compare subquery