【发布时间】:2009-08-10 13:23:56
【问题描述】:
想想这样的桌子
ID Value
100 1
100 3
101 1
101 4
102 2
102 5
103 2
103 4
104 1
104 3
105 2
105 5
问题是,如果我给出值 2 和 5,我应该得到 102 和 105,而 102 和 105 同时具有值 2 和 5,或者如果我给出值 1 和 3,我应该得到 100 和 104。
我怎样才能只用一个 sql 命令来做到这一点?我需要一个尽可能轻松的查询。
并使用 UNION、INTERSECTION 或 NESTED SQL,哪个更快、更慢、更重等?
提前致谢 尔格克
【问题讨论】:
-
谢谢大家,我开始测试查询以找到最快和最轻的查询。看来Rufinus的查询是最快的。 20,000 条记录,1006 条结果 Jhonny 平均 0.0045 秒 David 平均 0.0020 秒 Rufinus 平均 0.0010 秒(我从没想过这样做 :))我愿意接受新的建议
-
即使是强硬的 Rufinus 的回答也是我最快选择 David 的回答。它足够快且灵活,因此我可以使用 AND 和 OR 对值进行分组