【发布时间】:2011-05-25 01:34:23
【问题描述】:
我有两个 MySQL 表:
- product 有 id、title、price 和其他一些产品属性
- tag 有 *product_id* 和 *tag_name* 字段
每个 product 行可以在表 tag 中包含一个或多个行,由 *product_id* 字段连接。 问题:如何通过 *tag_name* 和其他属性选择产品? 示例:我需要选择所有价格低于 10 美元并带有“外国”和“科幻”标签的书籍
我知道如何选择带有一个标签的产品(通过 *product_id* 连接产品和标签并设置 where 子句) 我知道如何使用存储过程选择具有多个标签的产品,但是查询需要很长时间才能运行。 有没有办法避免存储过程仍然得到结果?
更新:当您单击右侧栏上的“相关标签”时,StackOverflow 会执行类似的操作。现在,我不知道他们的数据库有什么架构,但结果是相当快速地选择了所有带有多个标签的问题。
【问题讨论】:
标签: sql mysql stored-procedures