我正在清理我的数据库以进行sphinx索引,并且我正在运行的数据中有一个明显的错误。
为了使其适用于其他所有人,我会尽力保持这种概念而非个人。
我有一个带有数值的属性表:1,2,3,4,5 ...等。
我有一张资产表。 资产与属性具有1对多的关系。
为了处理1:N关系,我们有一个表来处理名为 asset_items 的关系。
每个资产将包含3个属性:1 2& 3。
id | value
___|________
1 | month
2 | day
3 | year
id | owner_id
___|_________
1 | 512
一组好的数据会是这样的:
id | asset_id | attribute_id | attribute_value
___|__________|______________|_________________
1 | 1 | 1 | March
2 | 1 | 2 | 2
3 | 1 | 3 | 2015
由于我的错误,我正在寻找一个类似于缺少attribute_id为2的所有资产的示例。例如:
id | asset_id | attribute_id | attribute_value
____|___________|______________|_________________
45 | 22 | 1 | October
47 | 22 | 3 | 1996
到目前为止我的SQL是:
select *
from asset_items
group by attribute_id
having count(attribute_id = 2) = 0
但不幸的是,这一切都没有回归。正确的SQL应该返回> 500行。
答案 0 :(得分:0)
您可以使用条件聚合执行此操作:
select asset_id
from asset_items
group by asset_id
having sum(case when attribute_id = 2 then 1 else 0 end) = 0