2013-10-13 37 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