1

假设我有一张像这样的桌子

 x      y  
10    5  
10    8  
10    12  
11    9  
11    14  
11    12  
14    12  
14    5  
14    11    

如果 y = 5,我需要返回所有具有相同值的 x 组所以我需要一个查询来返回值为 10 或 14 的 x 组。查询:

select x, y from table ...

应该给我这样的回报:

x y  
10 5  
10 8  
10 12  
14 12  
14 5  
14 11
4

2 回答 2

3
select x, y
from your_table
where x in 
(
  select distinct x
  from your_table
  where y = 5
)
于 2012-11-26T13:52:55.150 回答
1
SELECT *
FROM tableName
WHERE x in
    (
        SELECT DISTINCT x
        FROM tableName
        WHERE y = 5
    )

或者join也可以解决

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT DISTINCT x
            FROM tableName
            WHERE y = 5
        ) b ON a.x = b.x
于 2012-11-26T13:52:34.393 回答