gpt4 book ai didi

mysql - 查找缺失的属性表 - Mysql

转载 作者:行者123 更新时间:2023-11-30 22:29:18 25 4
gpt4 key购买 nike

我正在为 sphinx 索引清理我的数据库,我正在运行的数据中有一个明显的反复出现的错误。

为了使它适用于其他所有人,我会尽力保持概念性而非个人化。

我有一个属性表,其中包含数值:1、2、3、4、5...等。

我有一张 Assets 表。 Assets 与属性具有一对多关系。

为了处理 1:N 关系,我们有一个表来处理名为 asset_items 的关系。

每个 Assets 将拥有 3 个属性:1 2 和 3。

属性

id |  value
___|________
1 | month
2 | day
3 | year

Assets

id | owner_id
___|_________
1 | 512

Assets 项目

一组好的数据应该是这样的:

id | asset_id | attribute_id | attribute_value
___|__________|______________|_________________
1 | 1 | 1 | March
2 | 1 | 2 | 2
3 | 1 | 3 | 2015

由于我的错误,我正在寻找一个类似于所有缺少 attribute_id 为 2 的 Assets 的示例。示例:

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 行。

最佳答案

您可以使用条件聚合来做到这一点:

select asset_id
from asset_items
group by asset_id
having sum(case when attribute_id = 2 then 1 else 0 end) = 0

关于mysql - 查找缺失的属性表 - Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com