2 SELECTs in 1 Tabelle

Gerhardus

Benutzer
Beiträge
15
Hallo,
habe folgendes Problem: 2 SELECT's aus 1 Tabelle mit 8 teams, xrunden und Punkten
möchte ich in einer Abfrage in ein oberes und unteres Play OFF
teilen. Beide Abfrage funktionieren für sich korrekt. Ich möchte jedoch dies in einer Abfrage (Tabelle) bewerkstelligen.
Erschwerend ist das ich nur spezielle Runden SELECTe.

1.SELECT

SELECT `t_ID_f`, SUM(`punkte`) FROM `resultate`, teams
WHERE teams.Liga='A'
AND teams.PlayOff=1
AND resultate.runde>7
AND resultate.t_ID_f=teams.t_id

OR teams.Liga='A'
AND teams.PlayOff=1
AND resultate.runde=-1
AND resultate.t_ID_f=teams.t_id

GROUP BY resultate.t_ID_f
ORDER BY sum(punkte) DESC

2.SELECT


SELECT `t_ID_f`, SUM(`punkte`) FROM `resultate`, teams
WHERE teams.Liga='A'
AND teams.PlayOff=2
AND resultate.runde>7
AND resultate.t_ID_f=teams.t_id

OR teams.Liga='A'
AND teams.PlayOff=2
AND resultate.runde=-1
AND resultate.t_ID_f=teams.t_id

GROUP BY resultate.t_ID_f
ORDER BY sum(punkte) DESC


1=oberes Play Off für Runde -1 und ab 7 (Runde -1 sind Bonuspunkte)
2=unteres Play Off für Runde -1 und ab 7

Habe es mit UNION probiert jedoch Fehlermeldung wegen Group by bekommen.

Geht das überhaupt sonst muss ich die 2 Abfragen in PHP in eine Tabelle überführen.

Bitte um einen Hinweis.

LG Gerhardus
 
Werbung:
Wenn beide Abfragen für sich genommen gruppiert werden müssen kannst du beide auch in Subselects packen und nur das ORDER BY in den äußeren Select. Beispiel:
Code:
SELECT   t1.plz,
     t1.anzahl
FROM   (

SELECT   plz,
     count(*) AS anzahl
FROM   adressen
GROUP BY plzz

     ) t1
UNION ALL
SELECT   t2.plz,
     t2.anzahl
FROM   (

SELECT   plz,
     count(*) AS anzahl
FROM   adressen
GROUP BY plzz

     ) t2
ORDER BY 1
 
wenn man dann noch später sehen will, aus welcher Abfrage welche Zeile kommt kann man auch noch eine weitere Spalte je Select machen, quasi select 'ich kommen von hier' as quelle , .. und select 'ich bin von da' as quelle, ... ..
 
gelöst: ich brauche kein UNION. Es betreffen beide SELECTs dieselbe Tabelle, und die PlayOFF Bedingung kann ich aus den WHERE Bedingungen vorerst weglassen und
danach mit : order by playOff, order by Sum(..) ergibt mir die gewünschte Tabelle.
Bin zu kompliziert an die Sache herangegangen.
Danke an alle für Hinweise.
 
Werbung:
Mach mal noch aus dem select ... from x, y where ..., also dem implizieten Join, einen sauberen explizieten. Ist später leicher wartbar.
 
Zurück
Oben