1

ある人物のstatus="a"であるレコードを検索しようとしていますが、同じ人物がstatus="b"の別のレコードを持っているレコードを除外しています

SELECT * FROM Person WHERE STATUS ='a' AND Person_id NOT IN(SELECT Person_id FROM Person WHERE STATUS ='b' AND Person_id IS NOT NULL)

ヘルプに感謝します

4

1 に答える 1

0

DetachedCriteriaを介して Criteria API を使用してサブクエリを作成できます。

DetachedCriteria dc = DetachedCriteria.forClass(Person.class);
dc.setProjection(Property.forName("id")); // select person_id
dc.add(Property.forName("status").eq("b")); // where status = 'b'

Criteria c = session.createCriteria(Person.class);
c.add(Property.forName("id").notIn(dc)); // where id not in (above subquery)
c.add(Property.forName("status").eq("a")); // and status = 'a'
c.list(); // TODO: handle results
于 2009-10-01T02:34:50.340 に答える