如何选择满足两个条件的帐户,首先删除非重复帐户或仅选择正确的帐户

时间:2017-01-26 01:52:35

标签: sql

SELECT DISTINCT e.account, c.complete, c.value, c.step, r.user
FROM relationship r
LEFT OUTER JOIN entity e ON r.relationshipenid - e.entityid
FULL OUTER JOIN process c ON r.relationshipid = c.processid
WHERE c.step IN ('Verified','Setup')
AND c.complete IN ('Y','Y')

这个SQL查询主要是我想要的结果。虽然我只想要符合验证和设置的e.account。这个查询给了我同样满足验证或设置的帐户,我需要两者。

示例数据会是这样的 Image of Sample Tables I am Using and What I want to have Returned

我为表格做了一个例子来复制粘贴它们并没有正确显示它们。

1 个答案:

答案 0 :(得分:0)

如果您只想要帐户,可以使用以下方法:

SELECT e.account
FROM relationship r JOIN
     entity e
     ON r.relationshipenid = e.entityid JOIN
     process c
     ON r.relationshipid = c.processid
WHERE c.step IN ('Verified', 'Setup') AND c.complete IN ('Y', 'Y')
GROUP BY e.account
HAVING COUNT(DISTINCT c.step) = 2;

注意:您的外连接没用。无论如何,where子句将它们转换为inner join。另外,外部联接对你提出的问题没有意义。