gpt4 book ai didi

sql - SQLite查询仅在多行或同一ID上匹配

转载 作者:行者123 更新时间:2023-12-03 17:46:41 24 4
gpt4 key购买 nike

我有一个使用文本标签标记文件的系统。每个文件都有几个标签。相关表/列为:

taggings(fileHash,tagId)
tags(tagId,tagText)


如何查找所有同时具有tagText与查询1匹配的行和具有与查询2匹配的另一行的所有tagId?换句话说,当标签位于如上所示的单独行中时,如何查找同时具有两个标签的每个fileHash?

有没有办法针对任意数量的比赛进行此操作?

我发现了 this似乎相关,但是当我尝试编写这样的查询时,出现“无法准备声明”错误。

样本数据

标记

fileHash    tagId
404ba9 1
404ba9 2
e04f90 1
e04f90 3


标签

tagId       tagText
1 document
2 personal
3 work


预期结果

如果用户同时搜索了 personal中定义的 documenttags,请返回 404ba9,因为 taggings中同时存在(404ba9,1)和(404ba9,2)。

最佳答案

我将加入表格,对标签有条件,并计算匹配数:

SELECT   fileHash
FROM taggings
JOIN tags ON taggings.tagId = tags.tagId
WHERE tagText IN ('text1', 'text2')
GROUP BY fileHash
HAVING COUNT(*) = 2

关于sql - SQLite查询仅在多行或同一ID上匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54134435/

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