Red Hat Training

A Red Hat training course is available for Red Hat JBoss Web Server

8.14. ヒントと裏技

コレクションのサイズにより結果の順序を決めるには、以下のクエリを使用します。
select usr.id, usr.name
from User as usr 
    left join usr.messages as msg
group by usr.id, usr.name
order by count(msg)
データベースが副選択をサポートする場合は、クエリの where 句で選択サイズの条件を設定できます。
from User usr where size(usr.messages) >= 1
データベースが副選択をサポートしない場合は、以下のクエリを使用します。
select usr.id, usr.name
from User usr.name
    join usr.messages msg
group by usr.id, usr.name
having count(msg) >= 1
このソリューションでは、内部結合のためゼロメッセージで User を返すことができないため、以下の形式が役に立ちます。
select usr.id, usr.name
from User as usr
    left join usr.messages as msg
group by usr.id, usr.name
having count(msg) = 0