gpt4 book ai didi

SQLite:标签和产品交集

转载 作者:行者123 更新时间:2023-12-04 09:45:52 27 4
gpt4 key购买 nike

我是 SQLite 的新手,正在寻找一种创建查询的方法来执行以下操作:

我有3张 table :

goods: List of goods
tags: list of tags
tag_goods: table used to associate a tag to a product

这是每个表的结构:

商品:
id (INTEGER, autoincrement)
name (TEXT, name of the product)

标签:
id (INTEGER, autoincrement)
name (TEXT, name of the tag)

标签商品:
tag_id (INTEGER)
goods_id (INTEGER)
UNIQUE (tag_id, goods_id)

我想要的是:

仅获取标有所有可能标签的产品的 id 和名称(注意:我需要引用查询中的所有标签,而不是一一引用)。

(意思是,例如我只有四个标签:“黄色”、“圆形”、“可食用”、“有机”,并且只有“奶酪”和“甜瓜”才能匹配所有这些标签)

以我非常有限的经验,我明白,我可以尝试像相交这样的东西,但是当标签太多时这是不切实际的。

最佳答案

这个查询:

select goods_id
from tag_goods
group by goods_id
having count(*) = (select count(*) from tags)

返回所有 id具有来自 tags 的所有标签的商品.
您可以使用它从表中返回行 goods与运营商 IN :
select * from goods
where id in (
select goods_id
from tag_goods
group by goods_id
having count(*) = (select count(*) from tags)
)

关于SQLite:标签和产品交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62120929/

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