首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL预定义行的最大值

问SQL预定义行的最大值
EN

Stack Overflow用户
提问于 2011-10-26 07:34:15
回答 2查看 92关注 0票数 0

我有两个MySQL表: MEMBERS和POSTS。我需要进行一个具有以下含义的查询:

选择在POSTS表=>中有一些(>0)条记录的所有用户从中选择一个在MEMBERS表中有最大ADS值的用户。

我试着做了以下事情:

代码语言:javascript
复制
"SELECT * FROM posts WHERE user=(select user from members where ads=(select Max(ads) from members))'

但这有一个bug,当用户在成员中有最大值时,在POSTS表中没有记录- SQL返回空结果。

我的猜测是,我应该告诉MySQL不是从所有行中选择Max value,而是仅从预定义的行中选择Max value,但我不知道如何做到这一点,也不知道它是否可行。

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-26 08:12:57

代码语言:javascript
复制
SELECT m.*
FROM members AS m
WHERE EXISTS
      ( SELECT *
        FROM posts AS p 
        WHERE p.member_id = m.member_id
      )
ORDER BY ads DESC
LIMIT 1
票数 1
EN

Stack Overflow用户

发布于 2011-10-26 07:54:48

这行得通吗?

代码语言:javascript
复制
   select m.member_id, max(p.ads)
     from members m
     join posts p 
       on m.member_id = p.member_id
    group by m.member_id
    order by max(p.ads) desc
    limit 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7897083

复制
相关文章

相似问题

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