[英]Help with SQL QUERY OF JOIN+COUNT+MAX
我需要一個幫助構建一個mysql數據庫的SQL查詢。 2表如下:
tblcities (id,name)
tblmembers(id,name,city_id)
現在,我要檢索具有最大“成員”數量的“城市”詳細信息。
問候
SELECT tblcities.id, tblcities.name, COUNT(tblmembers.id) AS member_count
FROM tblcities
LEFT JOIN tblmembers ON tblcities.id = tblmembers.city_id
GROUP BY tblcities.id
ORDER BY member_count DESC
LIMIT 1
基本上:檢索所有城市並計算每個城市有多少成員,按降序排列該成員計數,首先計算最高數量 - 然后僅顯示第一個城市。
糟透了,但這是一種方法:
SELECT * FROM tblcities WHERE id IN (
SELECT city_id
FROM tblMembers
GROUP BY city_id
HAVING COUNT(*) = (
SELECT MAX(TOTAL)
FROM (
SELECT COUNT(*) AS TOTAL
FROM tblMembers
GROUP BY city_id
) AS AUX
)
)
這樣,即使有平局,您仍然可以獲得所有會員人數最多的城市...
Select ...
From tblCities As C
Join (
Select city_id, Count(*) As MemberCount
From tblMembers
Order By Count(*) Desc
Limit 1
) As MostMembers
On MostMembers.city_id = C.id
select top 1 c.id, c.name, count(*)
from tblcities c, tblmembers m
where c.id = m.city_id
group by c.id, c.name
order by count(*) desc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.