Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

ORDER BY und RAND

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von babo47, 31 März 2017.

  1. babo47

    babo47 Neuer Benutzer

    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
     
  2. BerndB

    BerndB Datenbank-Guru

    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;
     
    babo47 und ukulele gefällt das.
  3. babo47

    babo47 Neuer Benutzer

    Super - hat funktioniert! Genau so wollte ich das.

    Danke!

    Gruß Bastian
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden