[英]Merging columns from separate tables
I have 2 separate select statements that both return similar information 我有两个单独的选择语句,它们都返回相似的信息
SELECT PlayerName, SUM(Field1) + SUM(Field2) AS Power
FROM (SELECT PlayerName, Field1, Field2
FROM Plays INNER JOIN Creep ON Plays.Id = Creep.Id
) tmp
GROUP BY PlayerName
Which returns 哪个返回
-- PlayerName |Power
-- ----------------------------
-- Player1 |4
-- Player2 |5
I have a separate call 我有一个单独的电话
SELECT PlayerName, SUM(Field3) AS Weakness
FROM (SELECT PlayerName, Field3
FROM Plays INNER JOIN WeakCreep ON Plays.Id = WeakCreep.Id
) tmp2
GROUP BY PlayerName
Which returns a similar result 返回相似的结果
-- PlayerName |Weakness
-- ----------------------------
-- Player1 |1
-- Player2 |3
I am trying to find a way to produce 我试图找到一种生产方式
-- PlayerName |Power |Weakness
-- ---------------------------------------
-- Player1 |4 |1
-- Player2 |5 |3
It feels like I've tried every variation of JOIN and UNION but I cannot find a way to produce the combine results. 感觉就像我已经尝试了JOIN和UNION的每个变体一样,但是找不到能够产生合并结果的方法。 Any suggestions as to how to combine the 2 queries?
关于如何合并这两个查询的任何建议?
Try using left joins 尝试使用左联接
SELECT p.PlayerName,
SUM(c.Field1) + SUM(c.Field2) AS Power ,
SUM(w.Field3) AS Weakness
FROM Plays p , Creep c , WeakCreep w
where p.Id = c.Id(+)
and p.Id = w.Id(+)
group by p.PlayerName
try this query: 试试这个查询:
SELECT PlayerName, SUM(Field1) + SUM(Field2) AS Power, SUM(Field3) AS Weakness
FROM(SELECT t1.PlayerName, t2.Field1, t2.Field2, t3.Field3
FROM
Plays t1,Creep t2,WeakCreep t3
where
t1.Id = t2.Id and t1.Id = t3.Id
GROUP BY t1.PlayerName, t2.Field1, t2.Field2, t3.Field3)
GROUP BY PlayerName;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.