gpt4 book ai didi

mysql - 多标签搜索查询不起作用

转载 作者:行者123 更新时间:2023-11-30 21:41:51 28 4
gpt4 key购买 nike

我有一个通过多个标签搜索数据的查询,我从这个问题中得到了这个想法 Multiple tags search query .我有 3 个表,例如书籍(id、标题....)。标签(id,名称),books_tag(id,book_id,tag_id)。所以我使用我的查询按标签选择书籍,但没有给出任何结果。

书籍表

id : title
1 : maths
2 : science
3 : HP

标签表

id : name
1 : a
2 : b
3 : c

书签表

id : book_id : tag_id
1 : 1 : 2
2 : 1 : 3
3 : 2 : 1
4 : 3 : 1
5 : 3 : 2

因此,如果我搜索图书标签 c,结果应该是 book_id 1(数学)或者按 c 和 a 搜索,结果应该是 book_id 1,2,3(数学、科学、HP)

这是我的查询

SELECT books_tag.book_id, books_pre.title
FROM books_tag
JOIN books_pre ON books_tag.book_id = books_pre.id
JOIN tags ON books_tag.tag_id = tags.id
WHERE tags.name IN ('a', 'd')
GROUP BY books_tag.book_id
HAVING COUNT(books_tag.tag_id) = 2

最佳答案

您正在尝试的查询是针对 AND 条件的,例如获取那些具有标签 a 和标签 d 的书籍,根据您的问题,您不需要该条件,只需删除分组并具有条款,你会没事的

SELECT DISTINCT b.*
FROM books_pre b
JOIN books_tag bt ON bt.book_id = b.id
JOIN tags t ON bt.tag_id = t.id
WHERE t.name IN ('a', 'b')

Demo

关于mysql - 多标签搜索查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184661/

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