[英]SQL Max value of pre-defined rows
我有兩個MySQL表:MEMBERS和POSTS。 我需要進行具有以下含義的查詢:
選擇在POSTS表中具有一些(> 0)記錄的所有USER =>從中選擇在MEMBERS表中具有最大ADS值的USER。
我嘗試了以下事情:
"SELECT * FROM posts WHERE user=(select user from members where ads=(select Max(ads) from members))'
但是這有一個bug,當USER在MEMBERS中有Max值時,在POSTS表中沒有記錄 - SQL返回空結果。
我的猜測是我應該告訴MySQL選擇最大值不是來自所有行,而是僅來自預定義,但我不知道該怎么做以及是否可能。
有人能幫我嗎?
這有用嗎?
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
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.