2013-10-13 34 views
-1

我知道很多关于MySQL的知识,但也有一些我不能做的事情。我为我的游戏存储了2个表格中的信息。我将如何去结合这些表?

  1. user_data

    • Name(VARCHAR)
    • Money(INT)
    • Times Played(INT)
  2. kill_events(A插入新行上的每个杀):

    • killer(VARCHAR)
    • victim(VARCHAR)
    • time(DATETIME)

我需要一个查询,将这些表合并为一个表是这样的:

  • name(VARCHAR)
  • money(INT)
  • kills(INT)(的数量乘以它们在kill_eventskiller
  • deaths(INT)(的数量乘以它们在kill_eventsvictim
+0

谢谢谁编辑帖子。如果格式不正确,请不要在使用此网站之前抱歉。 – user2875914

回答

2

有许多方法可以实现这一点。一种选择是:

SELECT u.name, 
     u.money, 
     IFNULL(SUM(u.name = e.killer), 0) AS kills, 
     IFNULL(SUM(u.name = e.victim), 0) AS deaths 
FROM  user_data AS u LEFT JOIN kill_events AS e 
     ON u.name IN (e.killer, e.victim) 
GROUP BY u.name 
+0

谢谢。有用。但有一个问题。如果他们从来没有杀过或死过,那么它返回为空。如果他们从来没有杀过的话,我会如何设置默认值为0? – user2875914

+0

@ user2875914:使用'IFNULL()',如我修改后的答案所示。 – eggyal