0

所以我有一个名为“数据”的表,如下所示:

ID|Name
--|----
01|Bob
01|John
01|Hal
02|Bob
02|Mike
03|Hal
03|Mike
03|John
03|Dave
04|Hal
04|Bob

我可以建立一个查询

SELECT ID FROM data WHERE Name='Bob';

我得到了预期的结果 01, 02, 04 。现在我想做的是在同一个查询中,询问与这些 ID 关联的所有名称。像这样的东西:

SELECT Name FROM data WHERE ID=1 OR ID=2 OR ID=4;

这给了我 Bob、John、Hal、Bob、Mike、Dave、Bob 的结果

除了我真正想要的是

SELECT Name FROM data WHERE ID=(SELECT ID FROM data WHERE Name='Bob';);

这应该给我 Bob、John、Hal、Bob、Mike、Hal、Bob 的结果。

4

2 回答 2

1

这应该工作

SELECT Name FROM data WHERE ID IN (SELECT ID FROM data WHERE Name = 'Bob');

IN用作 ID 必须与子查询产生的多个结果进行比较。

于 2013-08-30T23:18:00.253 回答
0

我认为您在“IN”运算符之后

select a.name from data a where a.ID in (select b.ID from data b where b.Name = 'Bob');
于 2013-08-30T23:16:36.760 回答