mysql - 如何每次为特定团队返回唯一的消息

标签 mysql sql

我有一个像 this 这样的表其中包含团队 ID 和消息 ID。每次运行查询时,我都必须为每个团队获取唯一 msg_id。

示例:

ID  TEAM_ID  MSG_ID
1    1        10
2    1        11
3    2        12
4    2        13
5    2        14

有效输出:

1.

TEAM_ID        MSG_ID
   1             11
   2             13

2.

TEAM_ID        MSG_ID
   1             10
   2             12

最佳答案

如果您想为每个 TEAM_ID 返回一个随机相关的 MSG_ID:

SELECT t.TEAM_ID,
    (SELECT MSG_ID
     FROM team_message
     WHERE TEAM_ID = t.TEAM_ID
     ORDER BY RAND()
     LIMIT 1) MSG_ID
FROM (SELECT DISTINCT TEAM_ID
      FROM team_message) t;

SQL Fiddle

关于mysql - 如何每次为特定团队返回唯一的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23849498/

相关文章:

mysql - mysql中如何根据另一行的值选择或不选择一行

mysql - 是否可以找出一个与纯MySQL差异最大的值?

php - 教义不进行更新

mysql - 当一次预订中有多个类别时,获取两个日期之间的可用房间

mysql - 分层SQL查询

php - 无法从列中选择最高值

php - SQL数组只显示第一个结果

sql - 用数值替换 SQL 索引文本列会使其更快吗?

mysql,只返回大于10000的结果

mysql - MySQL 查询速度慢 - 如何才能加快速度?