2017-02-18 62 views
2

我有以下查詢,但我不知道在需要的別名,任何人都可以幫助防止我得到每個派生的表必須有它自己的別名MySQL錯誤消息

//錯誤

錯誤
Every derived table must have its own alias 

//查詢

SELECT user_id, 
     SUM(win) as won, SUM(draw) As drawn, SUM(loss) as lost, 
     SUM(goals_for) as goals_for, SUM(goals_against) as goals_against, 
     SUM(goals_for) - SUM(goals_against) as goals_difference, 
     player, username, community_result_id, count(*) as played, 
     SUM(points) as points  
FROM 
    (SELECT home_team_user_id as user_id, 
     CASE WHEN home_score > away_score THEN 1 ELSE 0 END as win, 
     CASE WHEN home_score = away_score THEN 1 ELSE 0 END as draw, CASE 
     WHEN home_score < away_score THEN 1 ELSE 0 END as loss, 
     CASE WHEN home_score > away_score THEN 3 
    WHEN home_score = away_score THEN 1 ELSE 0 END points, 
     home_score as goals_for, away_score as goals_against, 
     users.name as player, users.username, 
     community_results.community_result_id FROM community_results 
    LEFT JOIN users ON community_results.home_team_user_id=users.id 
    UNION ALL SELECT away_team_user_id as user_id, 
    CASE WHEN away_score > home_score THEN 1 ELSE 0 END as win, 
    CASE WHEN away_score = home_score THEN 1 ELSE 0 END as draw, 
    CASE WHEN away_score < home_score THEN 1 ELSE 0 END as loss, 
    CASE WHEN home_score > away_score THEN 3 WHEN home_score = away_score 
    THEN 1 ELSE 0 END points, away_score as goals_for, home_score as goals_against, 
    users.name as player, users.username, 
    community_results.community_result_id FROM community_results 
    LEFT JOIN users ON community_results.away_team_user_id = users.id) 
    WHERE user_id = 1 GROUP BY user_id ORDER By won desc LIMIT 1 
+0

當一個查詢詢問別名時,一種解決方案是給它一個 – Strawberry

回答

1

試試這個:

SELECT user_id, 
     SUM(win) as won, SUM(draw) As drawn, SUM(loss) as lost, 
     SUM(goals_for) as goals_for, SUM(goals_against) as goals_against, 
     SUM(goals_for) - SUM(goals_against) as goals_difference, 
     player, username, community_result_id, count(*) as played, 
     SUM(points) as points  
FROM 
    (SELECT home_team_user_id as user_id, 
     CASE WHEN home_score > away_score THEN 1 ELSE 0 END as win, 
     CASE WHEN home_score = away_score THEN 1 ELSE 0 END as draw, CASE 
     WHEN home_score < away_score THEN 1 ELSE 0 END as loss, 
     CASE WHEN home_score > away_score THEN 3 
    WHEN home_score = away_score THEN 1 ELSE 0 END points, 
     home_score as goals_for, away_score as goals_against, 
     users.name as player, users.username, 
     community_results.community_result_id FROM community_results 
    LEFT JOIN users ON community_results.home_team_user_id=users.id 
    UNION ALL SELECT away_team_user_id as user_id, 
    CASE WHEN away_score > home_score THEN 1 ELSE 0 END as win, 
    CASE WHEN away_score = home_score THEN 1 ELSE 0 END as draw, 
    CASE WHEN away_score < home_score THEN 1 ELSE 0 END as loss, 
    CASE WHEN home_score > away_score THEN 3 WHEN home_score = away_score 
    THEN 1 ELSE 0 END points, away_score as goals_for, home_score as goals_against, 
    users.name as player, users.username, 
    community_results.community_result_id FROM community_results 
    LEFT JOIN users ON community_results.away_team_user_id = users.id) t 
    WHERE user_id = 1 GROUP BY user_id ORDER By won desc LIMIT 1 
+1

景氣..這麼簡單謝謝 – Zabs

相關問題