【发布时间】:2023-04-09 14:01:01
【问题描述】:
我有一个查询来通过多个标签搜索数据,我从这个问题Multiple tags search query 中得到了这个想法。我有 3 张桌子,例如书籍(id,title....)。标签(id,名称),books_tag(id,book_id,tag_id)。所以我使用我的查询按标签选择书籍,但没有给出任何结果。
图书桌
id : title
1 : maths
2 : science
3 : HP
标签表
id : name
1 : a
2 : b
3 : c
Book_tag 表
id : book_id : tag_id
1 : 1 : 2
2 : 1 : 3
3 : 2 : 1
4 : 3 : 1
5 : 3 : 2
所以如果我搜索 book 标签 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
【问题讨论】:
-
如果不查看您的数据就很难说什么,请在您的问题中包含示例数据、表格定义和预期输出
-
@MKhalidJunaid 我已经编辑了我的问题