MySQL-选择所有N行不同记录的行

时间:2018-07-18 13:37:09

标签: mysql sql select distinct-values

我有一张包含地址,日期和其他信息的表。

我想选择一个N个唯一的地址,并且在那条N记录中,我想从该地址所在的所有行中选择所有内容,因为该地址不是唯一值在该列中。

Date      |     Address       |    MoreInfo
1/2/2000  |   123 SUPER LN    |   SOME MORE BORING INFO
2/3/2000  |   123 SUPER LN    |   SOME MORE BORING INFO
5/3/2000  |   567 AWESOME ST  |   SOME MORE BORING INFO
5/26/2000 |   567 AWESOME ST  |   SOME MORE BORING INFO
7/2/2000  |   987 SUPER LN    |   SOME MORE BORING INFO
8/3/2000  |   1100 BORING DR  |   SOME MORE BORING INFO
11/7/2000 |   1100 BORING DR  |   SOME MORE BORING INFO
1/5/2001  |   564 SUPER LN    |   SOME MORE BORING INFO

因此,对于该数据,我想获取3个不同的地址(123 SUPER LN, 567 AWESOME ST, 987 SUPER LN),并从这3个地址所在的所有行中获取所有内容。

我有一个查询:

SELECT *
FROM my_table
WHERE my_condition = true
GROUP BY address

但是,每个地址仅带来1行,我想获取所有N地址所在的所有行。谢谢!

1 个答案:

答案 0 :(得分:4)

我想这就是你想要的:

select t.*
from (select distinct address
      from my_table
      where my_condition = true
      limit 100  -- this is the N
     ) a join
     my_table t
     on a.address = t.address;

第一个子查询获取地址列表。 join带回原始行。