我正在使用JPQL,我想使用DISTINCT
删除所有重复的行,同时检索表中的所有列,我写了这样的内容:
SELECT DISTINCT cl.name, cl.age
FROM Client AS cl
WHERE cl.country='****'
此查询只返回两列name
和age
。
答案 0 :(得分:4)
假设您有一个唯一的id
,您可以编写查询以使用GROUP BY
,如下所示:
SELECT client FROM Client client
WHERE client.id IN (
SELECT MIN(c.id)
FROM Client c
WHERE c.country='****'
GROUP BY c.name, c.age
)
您不应检索Client
的所有字段,因为您不应选择非汇总字段。
答案 1 :(得分:1)
试试这个:
DELETE from Client c
Where c.name IN (SELECT DISTINCT cl.name
FROM Client AS cl
WHERE cl.country='****')
但要注意你的持久化上下文,以避免数据损坏。