例如,这是我对
的回应select *
from x
where id = 1
结果:
ID data
1 mouse
1 england
1 computer
现在,我如何在英格兰国家搜索鼠标?我无法确定这一点:
AND data = 'mouse'
AND data = 'england'
(如果可能的话,不要在查询中使用查询)
答案 0 :(得分:1)
如果我理解正确的话,你就有了#34; set-within-sets"查询。您想要查找给定id
的所有三个属性。为此,我建议使用group by
和having
:
select id
from x
where data in ('mouse', 'england')
group by id
having count(*) = 2;
答案 1 :(得分:1)
使用子查询来约束国家/地区。例如,这个数据
ID DATA
---------- --------
1 computer
1 england
1 mouse
2 austria
2 computer
2 mouse
3 mouse
3 mouse
您首先只过滤属于英格兰的ID而不是 约束鼠标。
SELECT *
FROM test
WHERE id IN
(SELECT id FROM test WHERE data = 'england'
)
AND data = 'mouse';
ID DATA
---------- --------
1 mouse