我如何组合这些表?

时间:2013-10-13 15:25:19

标签: mysql

我对MySQL了解很多,但有些事我不能做。我的信息存储在2个表格中。

  1. user_data

    • Name(VARCHAR)
    • Money(INT)
    • Times Played(INT)
  2. kill_events(每次杀戮都插入一个新行):

    • killer(VARCHAR)
    • victim(VARCHAR)
    • time(DATETIME)
  3. 我需要一个将这些表组合成这样的表的查询:

    • name(VARCHAR)
    • money(INT)
    • kills(INT)(它们是killer表中kill_events的次数)
    • deaths(INT)(它们是victim表中kill_events的次数)

1 个答案:

答案 0 :(得分: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