[英]mysql query with some calculation from 2 tables
我有2張桌子,
**Member table**
mid | parentid | name
1 1 a
2 1 x
3 1 c
4 2 d
5 3 e
6 3 f
7 4 g
和
**contact table**
cid | mid
1 1
2 1
3 3
4 2
5 3
6 4
7 4
我需要一個查詢以顯示成員列表,並從2個表上他們是其父母的最高人數進行排序,因此答案將是
id | name |rank
1 a 5
3 c 4
4 d 3
2 b 2
5 f 0
6 g 0
7 h 0
我認為使用UNION ALL
和GROUP BY
是解決此問題的方法。 這可能有效,但我尚未對其進行測試。
SELECT
member.mid AS id,
member.name AS name,
COUNT(counter.x) AS rank
FROM
member,
(
SELECT parentid AS x FROM member
UNION ALL
SELECT mid AS x FROM contact
) AS counter
WHERE
member.mid = counter.x
GROUP BY counter.x
SORT BY counter.x DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.