2017-02-18 4 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

Смежные вопросы