-1

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

  1. user_data

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

    • killer(VARCHAR)
    • victim(VARCHAR)
    • time(约会时间)

我需要一个将这些表组合成这样的表的查询:

  • name(VARCHAR)
  • money(INT)
  • kills(INT)(在表中出现的killer次数kill_events
  • deaths(INT)(在表中出现的victim次数kill_events
4

1 回答 1

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
于 2013-10-13T15:37:30.607 回答