我正在尝试执行以下查询。我期望不会出现任何重复。但是在结果集中,我得到了重复记录。我是sql新手。
SELECT DISTINCT pr.id as ruleid, pr.alias as rulename,grp.id as groupId, grp.alias, fgp.filterGroupType FROM ProcessingService s INNER JOIN s.fileGroupingParameter fgp ON fgp.status =:fileGroupStatus INNER JOIN s.svcPathList path ON path.status =:pathStatus INNER JOIN path.policy p ON p.status =:policyStatus INNER JOIN p.policyGroupRelSet pgr INNER JOIN pgr.group grp ON grp.status =:groupStatus INNER JOIN grp.policyGroupRuleRelSet rr INNER JOIN rr.policyRule pr ON pr.status =:ruleStatus INNER JOIN pr.policyActionSet pa ON pa.status =:actionStatus WHERE s.id in (:idList) AND pa.action =:actionType AND s.status =:serviceStatus AND fgp.filterGroupType ='Rulewise' AND pr.category =:reasonCategory AND pr.severity =:reasonSeverity
我如何根据我的要求获得不同的记录。
我得到的结果集是
"policy rule1"
"policy rule1"
"policy rule12"
"policy rule12"
而且我要:
"policy rule1"
"policy rule12"
作为输出。
最佳答案
唯一列适用于整个列集,而不仅仅是一个。如果其中一列中有重复项,则意味着该集中的其他某列中具有唯一值。您必须决定是否需要这些唯一值。
比起您将不得不删除不需要的列或根据某种逻辑选择所需的行。
关于mysql - SQL使用不同的返回重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47671258/