我有以下表结构:
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_id 是 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