我不知道在哪裏子查詢被允許在JPQL,您的查詢:
SELECT kinder.kindID, kinder.kindName, kinder.kindVorname
FROM kinder
INNER JOIN
(SELECT kindName
FROM kinder
GROUP BY kindName
HAVING count(kindID) > 1
) dup
ON kinder.kindName = dup.kindName
ORDER BY kinder.kindName
也可以用書面EXISTS
(除了IN
方式):
SELECT k.kindID, k.kindName, k.kindVorname
FROM kinder k
WHERE EXISTS
(SELECT *
FROM kinder k2
WHERE k2.kindName = k.kindName
AND k2.kindID <> k.kindID
)
ORDER BY k.kindName
或使用ANY
:
SELECT k.kindID, k.kindName, k.kindVorname
FROM kinder k
WHERE k.kindID <> ANY
(SELECT k2.kindID
FROM kinder k2
WHERE k2.kindName = k.kindName
)
ORDER BY k.kindName
你必須使用JPQL嗎?即原生SQL不是一種選擇? –
恐怕不是。查詢需要在需要在任何DBMS上運行的Java應用程序內執行。所以,沒有原生的SQL。 –
SQL是非常標準的,至少對於這個查詢需要什麼。我猜想這個查詢適用於任何DBMS。 –