ORDER BY und RAND

babo47

Neuer Benutzer
Beiträge
3
Hallo,

folgender Aufbau:

Unternehmen:

id | name
1 | unter a
2 | unter b
3 | unter c


Produkte:

id | pid | name
1 | 1 | prod a1
2 | 1 | prod a2
3 | 1 | prod a3
4 | 2 | prod b1
5 | 2 | prod b2
6 | 2 | prod b3
7 | 3 | prod c1
8 | 3 | prod c2
9 | 3 | prod c3



Ich lasse die Liste sortiert und somit gruppiert nach unternehmen (pid) ausgeben:

SELECT id FROM produkte ORDER BY pid;


Nun wird die Liste immer in folgender Reihenfolge ausgegeben.

Produkte von Unternehmen a --> Produkte von Unternehmen b --> Produkte von Unternehmen c

prod a1
prod a2
prod a3
prod b1
prod b2
prod b3
prod c1
prod c2
prod c3



Wie kann ich die Liste so ausgeben lassen, dass die Produkt-Gruppen unterschiedlich (random) ausgegeben werden?

Produkte von Unternehmen b --> Produkte von Unternehmen a --> Produkte von Unternehmen c

prod b1
prod b2
prod b3
prod a1
prod a2
prod a3
prod c1
prod c2
prod c3


Beim nächsten Seiten- Aufruf:

Produkte von Unternehmen c --> Produkte von Unternehmen b --> Produkte von Unternehmen a

prod c1
prod c2
prod c3
prod b1
prod b2
prod b3
prod a1
prod a2
prod a3

usw.


Jemand eine Idee?
Gruß Bastian
 
Werbung:
Veruchs mal damit. Zuerst werden alle Unternehmen geholt, jeweils mit einer Zufallszahl. Danach
die Produkte des Unternehmens. Und das ganze dann sortiert nach der Zufallszahl und dem Produkt.

Code:
SELECT p.`name`
FROM (SELECT DISTINCT id , rand() r FROM Unternehmen  ) r
LEFT JOIN Produkte p ON p.pid = r.id
ORDER BY r.r, p.pid;
 
Werbung:
Zurück
Oben