2017-02-18 3 views
2

Ich habe die folgende Abfrage, aber ich bin nicht sicher, wo die Alias ​​benötigt wird, kann jemand helfen, den Fehler zu verhindern iJede abgeleitete Tabelle muss eine eigene Alias ​​mysql Fehlermeldung hat

immer bin

// Fehler

Every derived table must have its own alias 

// Abfrage

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

Wenn eine Abfrage nach einem Alias ​​fragt, ist eine Lösung, es – Strawberry

Antwort

1

try this:

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

Boom zu geben .. so einfach danke – Zabs

Verwandte Themen