具有多列的IN运算符的优化查询

时间:2016-05-26 07:09:27

标签: sql postgresql

我有以下表结构

batch_id    id  value
877         10  ABC
877         41  XYZ
877         23  VPN
855         10  ABC
866         41  XYZ

我想要两个条件都适用的批处理ID id = 10,值= ABC id = 41,值= XYZ

在上面的示例中,我想要877作为输出。

我写过如下查询:

SELECT final_table.id
FROM
(
    select C.value , C.id
    FROM C
    WHERE (C.id, C.value) IN ((10, 'ABC'), (41, 'XYZ'))
) AS final_table
GROUP BY final_table .id
HAVING COUNT(final_table .id) > 1

由于我对sql没有太多了解,请建议这是正确的吗?

提前致谢。

0 个答案:

没有答案