2016-05-15 20 views
0

Ich versuche eine Abfrage zu erstellen, um mehrere Zeilen aus der gleichen Tabelle zu wählen, gruppiert sie wie ein Array. Jetzt bin ich der Auswahl sie php wie folgt aus:MySQL select Gruppierung mehrerer Zeilen aus der gleichen Tabelle

$tks = mysqli_query($con,"SELECT * FROM hof ORDER BY tks DESC LIMIT 5"); 

$top_ths = mysqli_query($con,"SELECT * FROM hof ORDER BY ths DESC LIMIT 1"); 

$top_tha = mysqli_query($con,"SELECT * FROM hof ORDER BY tha DESC LIMIT 1"); 

---- 

Ich möchte sie in einer einzigen Abfrage verschmelzen, damit ich ein assoziatives Array. Etwas wie folgt aus:

(SELECT * FROM hol ORDER BY tks DESC LIMIT 5) AS tks 
UNION 
(SELECT * FROM hol ORDER BY ths DESC LIMIT 1) AS top_ths 

So tks enthält alle 5 Zeilen und top_ths enthält 1 Zeile. Ist es möglich? Vielen Dank.

+3

Warum nicht machen? Hast du diese Abfrage schon ausprobiert? – nanocv

+1

Yup ... Du hast es richtig gemacht. Das ist die Antwort. –

+0

Ja, ich habe es versucht. Aber es sagt mir, es ist ein Fehler in der Nähe von 'AS tks ... :( –

Antwort

0

von Wich Gruppenzeile undersatnd wird, zusätzliches Feld

(SELECT *, 1 as `group` FROM hol ORDER BY tks DESC LIMIT 5) 
UNION 
(SELECT *, 2 as `group` FROM hol ORDER BY ths DESC LIMIT 1) 
+0

Es gibt einen Fehler in der Nähe von 'Gruppe FROM .... PS. Ich verwende phpmyadmin auf xampp. –

+0

i bin falsch - es ist reserviertes Wort jetzt wird es funktionieren – splash58

+0

Es funktioniert Ich denke, das ist der beste Weg für diesen Fall –