簡體   English   中英

SQL Max預定義行的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM