[英]SQL join results from GROUP BY and COUNT in 2 tables
表1(VID是唯一的)
VID|UID
99 | 11
56 | 12
52 | 11
24 | 13
14 | 13
要通過UID計算記錄,
SELECT count(*),UID from t1 GROUP by UID
------------
count(*)|UID
2| 11
1| 12
2| 13
表2(是表1的子集)
VID
99
52
14
要在與表1映射后按UID計數記錄,
SELECT count(*),uid from t1 WHERE vid in (SELECT vid from t2) group by uid
------------
count(*)|UID
2|11
1|13
現在我可以基於第二個結果和1個SQL將這兩個結果表連接在一起,結果是:
t1Count|t2Count|UID
2| 2|11
2| 1|13
如果我想加入一個包含UID信息的額外表怎么辦:
UID|info
11|....
12|....
13|....
14|....
15|....
這樣的結果是:?
t1Count|t2Count|UID|info
2| 2|11 |....
2| 1|13 |....
嘗試下面的查詢以獲得所需的結果。
select t1count,t2count,tab1.UID from (SELECT count(*) as t1count,UID from t1 GROUP by UID
) tab1
inner join
(SELECT count(*) as t2Count,uid from t1 WHERE vid in (SELECT vid from t2) group by uid) tab2
on tab1.UID=tab2.UID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.