2016-07-06 10 views
0

Diese Arbeits wissen:Problem mit sich selbst mit einer Sub-Abfrage beitreten, wollte die Differenz von 2 Abfragen unter

SELECT a.year, a.name, a.runs 
from players a JOIN 
    (SELECT year, max(runs) runs FROM players GROUP BY year 
    ) b 
    ON (a.year = b.year AND a.runs = b.runs); 

Dies funktioniert nicht:

select a.name,b.year,b.run 
from players a join 
    (select year, max(runs) as run, name from players group by year 
    ) b 
    on a.year = b.year AND a.runs = b.run; 

Kann jemand plz mir helfen, dies zu verstehen ?

+1

„name“ in den Gruppe von oder verwenden Sie max (Name) in auswählen – Kostya

+0

Wir haben sehr wenig Ahnung, was Sie tun/versuchen zu tun, damit wir nicht wirklich helfen können. Im Allgemeinen müssen jedoch auch nicht aggregierte Spalten, die in einer SELECT-Klausel vorkommen, in die GROUP BY-Klausel eingeschlossen werden. – Strawberry

+0

Danke .got es – silentshadow

Antwort

0

Die zweite Join-Abfrage nicht richtig Gruppe von

 (select year, max(runs) as run, name from players group by year 
) b 

, weil Sie auch Sie auswählen Name sollte Gruppe von

 (select year, max(runs) as run, name from players group by year, name 
) b 

aber Sie anderes Ergebnis geben

+0

danke :) es hat funktioniert – silentshadow