如果我有一个包含类似列的表格
ID1 ID2 VAL1 VAL2
其中ID1,ID2为主键索引。
如何针对特定 ID1、ID2 值执行任何 SQL 语句?
示例:我的表中包含 PK (1,1) (1,2) (2,4) (2,1) (3,1) (3,2) (3,5) 的记录
我只想选择具有 (1,1) (1,2) (3,5) (3,2) 的记录
SELECT 查询
SELECT * FROM tbl1 WHERE ID1 IN (1,3) AND ID2 IN (1,2,5)
将产生不期望的结果:(3,1)。那么最好的方法是什么?
我正在寻找 SQL 的整体答案,但如果它依赖于 DBMS,我想知道如何在 PostgreSQL 和 MySQL 中这样做。
最佳答案
MySQL 和 PostgreSQL 都支持 IN
中的元组,如下所示。
SELECT *
FROM tbl1
WHERE (ID1,ID2) IN ((1,1) (1,2) (2,4) (2,1) (3,1) (3,2) (3,5));
关于mysql - 如何在具有复合键列表的表上执行 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7865414/