我对MySQL了解很多,但有些事我不能做。我的信息存储在2个表格中。
user_data
:
Name
(VARCHAR)Money
(INT)Times Played
(INT) kill_events
(每次杀戮都插入一个新行):
killer
(VARCHAR)victim
(VARCHAR)time
(DATETIME)我需要一个将这些表组合成这样的表的查询:
name
(VARCHAR)money
(INT)kills
(INT)(它们是killer
表中kill_events
的次数)deaths
(INT)(它们是victim
表中kill_events
的次数)答案 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