首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在mysql查询中使用MIN()发出

在mysql查询中使用MIN()发出
EN

Stack Overflow用户
提问于 2017-02-07 16:16:57
回答 1查看 40关注 0票数 1

我进行了以下查询,获取表MIN(id)中重复path值的movies

代码语言:javascript
运行
复制
SELECT m.id, m.user_id , m.path
FROM movies m
  INNER JOIN (
               SELECT Min(id) as movie_id, path,  COUNT(*)
               FROM movies
               WHERE importer LIKE '%AS%'
               GROUP BY  path
               HAVING COUNT(*) > 1) temp
    ON  temp.path = p.path
        AND temp.movie_id = m.id
        AND importer LIKE '%AS%'

我得到了这个结果:

代码语言:javascript
运行
复制
  id       | user_id |     path    | 
­­­­­­­­­­­­------------------------------------
 2         | 1234    |     XXXX    |  
 8         | 4231    |     BBBB    | 

问题是我有另一部有相同路径的电影,但没有出现,因为MIN()GROUP BY path

我想对路径进行分组,但不要退出另一条路径,因为我做了MIN(id)

这是预期的结果:

代码语言:javascript
运行
复制
  id       | user_id |     path    | 
­­­­­­­­­­­­------------------------------------
 2         | 1234    |     XXXX    |  
 8         | 4231    |     BBBB    | 
 5         | 3421    |     BBBB    | 

我做错什么了?

@Tim Biegeleisen

问题是,在使用相同的user_id获取重复路径的查询中:

代码语言:javascript
运行
复制
  id       | user_id |     path    | 
­­­­­­­­­­­­------------------------------------
  3523        12287         asd
  3524        12287         asd
  3525        12287         asd

我应该获得每个分组路径的最小id。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-07 16:22:18

我认为您想要做的是GROUP BY user_idpath,然后选择具有最小电影ID的记录,如果有多个用户与给定的path相关联。如果是这样的话,那么下面的查询应该可以工作:

代码语言:javascript
运行
复制
SELECT m1.id, m1.user_id, m1.path
FROM movies m1
INNER JOIN
(
    SELECT user_id, path, MIN(id) AS min_id
    FROM movies
    WHERE importer LIKE '%AS%'
    GROUP BY user_id, path
) m2
    ON m1.path    = m2.path AND
       m1.user_id = m2.user_id AND
       m1.id      = m2.min_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42094794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档