我有这样的表:
id | name | type
-----------------
0 | firs | 2
1 | secs | 3
2 | this | 9
1 | thus | 3
我知道id(它不是唯一的id)和类型,我想只有在指定数量的记录具有该id和类型时才选择记录。
我试过一个记录,例如:
select * from myTable
where
(select count(*) from myTable where myTable.id = 0 and myTable.type = 2) = 1;
这会返回所有行,而不仅仅是我想要的行。任何人都可以告诉我,如何获得正确结果的正确方法是什么?
答案 0 :(得分:0)
您的where语句看起来像WHERE 1 = 1并且它始终为true,因此SELECT从表中获取每一列。 如果你想选择例如id为1且type = 3且出现次数= 2的数据,你可以这样做:
select * from myTable
where
(select count(*) from myTable where myTable.id = 1 and myTable.type = 3) = 2 and myTable.id = 1 and myTable.type = 3;