【发布时间】:2013-07-27 03:46:20
【问题描述】:
大家早上好/晚上好,
我正在尝试(左)将两个表加入一个表和SUM() 匹配ON fk_id = id... 语句的特定列的值。这就是表格的样子:
ws1 表:
ws2 表:
到目前为止我尝试过的查询:
SELECT
alias.name alias,
(SUM(IFNULL(ws1.teamkills,0)) + SUM(IFNULL(ws2.teamkills,0))) teamkills
FROM pickup
JOIN player ON player.pickup_id = pickup.id
JOIN alias ON player.alias_id = alias.id
LEFT JOIN weapon_stats_1 ws1 ON ws1.pickup_id = pickup.id AND ws1.player_id = player.id
LEFT JOIN weapon_stats_2 ws2 ON ws2.pickup_id = pickup.id AND ws2.player_id = player.id
WHERE pickup.logfile_name = 'srv-20130725-2151-log' GROUP BY player.id
结果:
和:
SELECT
alias.name alias,
(SUM(DISTINCT IFNULL(ws1.teamkills,0)) + SUM(DISTINCT IFNULL(ws2.teamkills,0))) teamkills
FROM pickup
JOIN player ON player.pickup_id = pickup.id
JOIN alias ON player.alias_id = alias.id
LEFT JOIN weapon_stats_1 ws1 ON ws1.pickup_id = pickup.id AND ws1.player_id = player.id
LEFT JOIN weapon_stats_2 ws2 ON ws2.pickup_id = pickup.id AND ws2.player_id = player.id
WHERE pickup.logfile_name = 'srv-20130725-2151-log' GROUP BY player.id
结果:
我知道SUM(DISTINCT.... ) 返回2,因为DISTINCT 只选择一个相同值的结果。
我的目标是获取两个teamkills 字段的SUM()s 并将它们加在一起。在示例中,它应该返回3,其中player_id 是4。我该怎么做?
编辑:
表“播放器”:
表'拾取':
【问题讨论】:
-
请在
pickuptable for player_id = 4 中显示数据 -
我添加了拾取和玩家表的截图。我认为您要的内容在
player表中。