サブクエリは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で動作すると思います。 –