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。此查询为我提供了也只满足已验证或设置的帐户,我需要两者。
示例数据类似于我正在使用的示例表的图像以及我想要返回的内容
我做了表格的图像作为示例复制粘贴它们没有正确显示它们。
如果您只想要帐户,这里有一种方法:
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
。 另外,外部联接对于您提出的问题没有意义。