作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这有点难以解释,但就是这样。我有一个书籍数据库,里面有两个表。
一个用于唯一的图书关键字,即只需为每个关键字分配一个 ID:
id | keyword______|____________k1 | dramak2 | thrillerk3 | biography
还有一个用于将图书 ID 与关键字 ID 进行匹配(即每本书的所有关键字):
book_id | keyword_id__________|_____________b1 | k3b2 | k1b2 | k2
基本上,书“b1”有关键字“传记”,书“b2”有关键字“惊悚片”和“传记”。
我的问题是:如果我有某个图书 ID(比如“b2”),有没有办法让我在数据库中查找具有至少 2(或任何其他number) 与“b2”匹配的关键字?那么在这个例子中,其他书籍也有“k1”和“k2”作为关键字吗?这将是查找“相关书籍”的一种方式。
我欢迎任何帮助。如果您需要澄清我的问题,请告诉我!
最佳答案
是的。事实上,您只需要第二个表。
select bk.book_id, count(*)
from BookKeywords bk join
BookKeywords bkb2
on bkb2.book_id = 'b2' and
bk.keyword_id = bkb2.keyword_id
group by bk.book_id
having count(*) >= 2;
如果您想要匹配关键字的列表,可以添加group_concat(bk.keyword_id)
。
关于MySQL:相交匹配一定数量特征的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26208916/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!