0
我想從兩個不同的表中總結兩列,然後按用戶ID(uid)分組。我做了小提琴,但似乎將結果乘以一列中的行數。 http://sqlfiddle.com/#!9/433a5e/3Mysql總結和兩個表上的組
我想從兩個不同的表中總結兩列,然後按用戶ID(uid)分組。我做了小提琴,但似乎將結果乘以一列中的行數。 http://sqlfiddle.com/#!9/433a5e/3Mysql總結和兩個表上的組
這兩個表中的每個uid
都有多行。因此,對於uid
,您將得到一個笛卡爾積 - 一個表中的2行用於uid,另一個表中的3行成爲6行,並有大量重複的數據。
SO,這樣在連接前彙總數據:
select s.uid, sumscore, sumorder
from (select s.uid, sum(s.score) as sumscore
from scores s
group by s.uid
) s left join
(select o.uid, sum(o.order) sumorder
from orders o
group by o.uid
) o
on o.uid = s.uid;
Here是在一個SQL小提琴的結果。
您可能正在尋找。試試這個,讓我知道它是否對你有幫助。
SELECT s.uid, SUM(s.score) as score_tot, (SELECT SUM(orders.order) FROM orders WHERE orders.uid = s.uid GROUP BY orders.uid) as order_tot FROM scores as s GROUP BY s.uid
這是一件好事,所以+1。 –
太棒了!我爲我完美工作。再次感謝。 – Henioryb