【发布时间】:2015-02-04 10:15:42
【问题描述】:
我有一对多的关系表
ReviewId EffectId
1 | 2
1 | 5
1 | 8
2 | 2
2 | 5
2 | 9
2 | 3
3 | 3
3 | 2
3 | 9
在网站中,用户选择他选择的每个效果,我得到所有相关的评论。
我做了一个in 查询
例如,如果用户选择效果 2 和 5
我的查询:“
select reviewed from table_name where effected in(2,5)
现在我需要获得所有包含这两种效果的评论 所有具有效果 2 和效果 5 的评论 进行此操作的最佳查询是什么? 对我来说重要的是查询将尽可能快地运行。 为此,我还可以更改表架构(如果需要),例如添加一个包含所有效果的缓存字段,如
Reviewed cachedEffects
1 | ,2,5,8
2 | ,2,5,9,3,
3 | ,3,2,9
【问题讨论】:
-
你想要什么输出
-
你现在的设计没问题。不管风雨无阻,不要改成逗号分隔。
标签: sql sql-server performance tsql