简体   繁体   English

合并单独表中的列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM