【发布时间】:2013-05-14 15:27:11
【问题描述】:
我的表结构如下:
item_id |价值 | =================== 1 | 1 | 1 | 3 | 1 | 4 | 2 | 2 | 2 | 3 | 2 | 4 | 2 | 5 | 3 | 1 | 3 | 5 | 3 | 6 | 4 | 1 | 4 | 3 | 4 | 4 | 4 | 5 |我有一个查询,它返回值与 1、3 和 4 匹配的那些 item_id。 所以这里应该返回的item_ids是1和4。
我的查询:
从表 t 中选择 item_id where exists (select item_id from table t1 where value = 1 and t1.item_id = t.item_id) 并且存在(从表 t1 中选择 item_id,其中 value = 2 和 t1.item_id = t.item_id)按 item_id 分组此查询运行良好。这里我只匹配 3 个值。如果我想从表中匹配 50 个这样的值怎么办? (所有 50 个值都存储在一个 php 数组中)查询会很大,而且我想在同一个查询中从两个不同的表中做同样的事情。因此,这将使已经很庞大的查询的大小翻倍。请给我一些其他的建议。
已编辑::
表 2 -------- item_id |用户 ID | =================== 1 | 1 | 1 | 5 | 1 | 7 | 2 | 2 | 2 | 3 | 2 | 4 | 2 | 5 | 3 | 1 | 3 | 5 | 3 | 6 | 4 | 1 | 4 | 3 | 4 | 4 | 4 | 5 |现在,我想要 item_id,其中 table1 的值为 1,3,4,table2 的 user_id 为 1,5,7
【问题讨论】: