mysql - SQL使用不同的返回重复记录

标签 mysql sql hibernate

我正在尝试执行以下查询。我期望不会出现任何重复。但是在结果集中,我得到了重复记录。我是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/

相关文章:

php - 如何为用户数据创建 API(MySQL 和 PHP)

mysql - Laravel 使用 AND/OR 运算符在多表上搜索多个关键字

mysql - SQL where 存在,同时保留它们之间的值

MySQL:无法在列中插入 '&'

java - 看似简单的 Hibernate 查询需要 15-18 秒

mysql - 获取每个ID的最新记录

php - 我需要为 PHP MYSQL 表 TR 分配一个唯一的类

java - 如何使用java代码在单个数据库中一次连接多个模式

oracle - ORA-04091: 表 [blah] 正在发生变化,触发器/函数可能看不到它

java - ClassNotFoundException : org. hibernate .bytecode.instrumentation.internal.FieldInterceptionHelper