我有两个MySQL表: MEMBERS和POSTS。我需要进行一个具有以下含义的查询:
选择在POSTS表=>中有一些(>0)条记录的所有用户从中选择一个在MEMBERS表中有最大ADS值的用户。
我试着做了以下事情:
"SELECT * FROM posts WHERE user=(select user from members where ads=(select Max(ads) from members))'但这有一个bug,当用户在成员中有最大值时,在POSTS表中没有记录- SQL返回空结果。
我的猜测是,我应该告诉MySQL不是从所有行中选择Max value,而是仅从预定义的行中选择Max value,但我不知道如何做到这一点,也不知道它是否可行。
有人能帮我吗?
发布于 2011-10-26 08:12:57
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发布于 2011-10-26 07:54:48
这行得通吗?
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 1https://stackoverflow.com/questions/7897083
复制相似问题