Dies ist mein erstes Mal mit UNION und ich bin mir nicht sicher, wie Sie das beheben, um die richtige Ausgabe anzuzeigen, die ich möchte. Momentan zeigt es mir 9 Ausgänge, aber ich möchte, dass es mir nur 1 zeigt (Randy Troy und seine gsExperiencePoints) Ich möchte, dass es das Maximum aus einer Abfrage erhält und eine Where-Klausel von einem anderen nur für devName 'Blizzard Entertainment' verwendet. Thomas Hardy ist nicht die richtige Antwort, da er keine Blizzard-Spiele spielt, deshalb wird er hinzugefügt, weil er in jedem Spiel in meiner Datenbank die meisten Exp hat.So verwenden Sie Union richtig
Derzeit ist meine Ausgabe:
SELECT
gamerFirst + ' ' + gamerLast as 'Gamer',
gsExperiencePoints
FROM GAMER as gr
INNER JOIN GAME_STAT as gs ON gr.gamerID = gs.gamerID
INNER JOIN GAME as g ON gs.gameID = g.gameID
INNER JOIN DEVELOPER as d ON g.devID = d.devID
WHERE gsExperiencePoints = (SELECT MAX(gsExperiencePoints) FROM GAME_STAT)
GROUP BY gsExperiencePoints, gamerFirst, gamerLast
UNION ALL
SELECT
gamerFirst + ' ' + gamerLast as 'Gamer',
gsExperiencePoints
FROM GAMER as gr
INNER JOIN GAME_STAT as gs ON gr.gamerID = gs.gamerID
INNER JOIN GAME as g ON gs.gameID = g.gameID
INNER JOIN DEVELOPER as d ON g.devID = d.devID
WHERE devName = 'Blizzard Entertainment'
GROUP BY gsExperiencePoints, gamerFirst, gamerLast;
Einige Ratschläge hier: Wenn Sie Ihre SQL-Anweisung verknüpfen, ** ** immer ** alle Felder mit dem Alias qualifizieren. Überall. Ich möchte solche Abfragen nicht wirklich betrachten, ohne zu wissen, aus welcher Tabelle die Spalten ausgewählt sind. Frage: Warum verwenden GROUP BY für Felder ohne eine Aggregatfunktion (wie zB SUM)? Wolltest du bestimmte Werte auswählen? In diesem Fall, SELECT DISTINCT ... 'ohne die' GROUP BY'. –
Es klingt, als ob Sie nicht wirklich eine Gewerkschaft brauchen oder wollen. Versuchen Sie auszuwählen, welcher 'Blizzard Entertainment' Entwickler die höchsten Erfahrungspunkte hat? – kicken
@kicken Ich versuche herauszufinden, welche Person, die 'Blizzard Entertainment' Spiele gespielt hat, die höchste Erfahrung hat und zeige ihm einfach (Randy Troy) – Bowie