【发布时间】:2014-12-15 12:57:30
【问题描述】:
我有两个不同的表工件和分类。我想检索没有分类的工件列表。分类表包含 ID(PK)、Artifact_Id(外键)、Active(0/1),而工件表包含 ID(PK)、Name。每个工件可以有许多分类。我想在没有分类时返回工件列表(即分类不包含该工件或工件具有分类但所有实例均未激活(0))
例如
Artifact
Id Name
1 xyz
2 pqr
3 abc
Classification
Id Artifact_id active
a1 1 0
a2 1 0
a3 1 0
a4 3 0
a5 3 1
在上述情况下,工件 1 和 2 没有分类,但 3 有分类,因为一个实例处于活动状态 (1)。所以我想返回 1 和 2。我不知道如何查询这个。 这是我尝试过的(虽然不是太多而且是错误的)
def list = findAll("from artifact as a full outer join classification as c on a.id=c.artifact_id where active == 0 OR c.aritfact_id is NULL,[max:limit, offset:startPos])
我也在sql中尝试了一些东西
select * from ARTIFACT full outer join classification on artifact.id = classification.ARTIFACT_ID where sum(classification.active) == 0 OR classification.aritfact_id is NULL
【问题讨论】:
标签: mysql sql database oracle hql