ilch Forum » Allgemein » HTML, PHP, SQL,... » SQL Group By und Order By

Geschlossen
  1. #1
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Hi Zusammen ich möchte eine SQL abfrage machen bei der ich irgendwie hänge.

    also ich hab eine Tabelle die sieht so aus (beispiel vereinfacht)

    Name Position Bild

    So der Name muss immer gesetzt sein und Position ebenfalls bild kann aber Null sein.

    Ich möchte jetzt zwei gruppen bilden einmal die die ein bild haben und einmal die die kein Bild haben.

    Dazu dacht ich mich ich mach ein Group by

    was an sich auch klappte dass dann zuerst die Mit bild angezeigt wurden und dann erst die ohne bild.

    Zusätzlich wollte ich aber die beiden Gruppen auch noch nach ihrer Position sortieren. also Die mit bild sollen noch nach Ihrer Position sortiert werden und die ohne bild ebenfalls.
    WAs leider nicht klappt ... traurig

    mein ansatz sah so aus:
    SELECT * FROM `prefix_versichererpartner` WHERE aktiv = 0 GROUP by case when bild1 is null then 1 else 0 end, bild1 ORDER BY bild1 desc, position asc


    jemand eine idee?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Huhu, also ich es mal eben so probiert
    SELECT position as id, 
    name, bild
    FROM `prefix_versichererpartner`
    GROUP by bild,id
    ORDER by bild DESC, id DESC


    Musst du mal sehen ob es dir so passt
    MFG


    Zuletzt modifiziert von corian am 29.01.2015 - 17:33:01
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    das ist leider noch nicht des rätsels lösung zwinker

    Beispiel: ich hab folgende daten

    position, bild
    67, Blubb
    88, Null
    22, Blubb
    1, Null
    232, Blubb
    12, Null

    die sollen so angezeigt werden

    22, Blubb
    67, Blubb
    232, Blubb
    1, Null
    12, Null
    88, Null


    Also es soll getrennt werden in die Mit bild und die ohne bild

    und der block mit bildern soll sortiert sein und der block ohne bild soll sortiert sein


    Zuletzt modifiziert von holz am 30.01.2015 - 10:21:24
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Ja das stimmt hab gestern auch noch ne ganze weile gesessen aber nichts sinnvolles hinbekommen.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    äußerst komisch ... nervt mich dass ich das nicht hinbekomme^^ hab oben nochmal ein beispiel eingefügt


    Zuletzt modifiziert von holz am 30.01.2015 - 10:22:22
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    ZitatZitat geschrieben von holz
    das ist leider noch nicht des rätsels lösung zwinker

    Beispiel: ich hab folgende daten

    position, bild
    67, Blubb
    88, Null
    22, Blubb
    1, Null
    232, Blubb
    12, Null

    die sollen so angezeigt werden

    22, Blubb
    67, Blubb
    232, Blubb
    1, Null
    12, Null
    88, Null


    Also es soll getrennt werden in die Mit bild und die ohne bild

    und der block mit bildern soll sortiert sein und der block ohne bild soll sortiert sein


    Zuletzt modifiziert von holz am 30.01.2015 - 10:21:24


    ORDER BY  `bild` ASC ,  `position` ASC
    zwinker
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    ZitatZitat geschrieben von Pion
    ZitatZitat geschrieben von holz
    das ist leider noch nicht des rätsels lösung zwinker

    Beispiel: ich hab folgende daten

    position, bild
    67, Blubb
    88, Null
    22, Blubb
    1, Null
    232, Blubb
    12, Null

    die sollen so angezeigt werden

    22, Blubb
    67, Blubb
    232, Blubb
    1, Null
    12, Null
    88, Null


    Also es soll getrennt werden in die Mit bild und die ohne bild

    und der block mit bildern soll sortiert sein und der block ohne bild soll sortiert sein


    Zuletzt modifiziert von holz am 30.01.2015 - 10:21:24


    ORDER BY  `bild` ASC ,  `position` ASC
    zwinker



    So funktioniert das nur "fast" die bilder sollen jetzt noch an erster stelle stehen und die position von klein nach groß





    Zuletzt modifiziert von corian am 30.01.2015 - 13:26:39
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ja und die sortierung nach position klappt so nur bei denen ohne bild

    siehe screenshot von corian

    die 3. spalte von rechts ist die position.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    das ist die lösung:

    $sql = db_query('SELECT * FROM `prefix_versichererpartner` WHERE aktiv = 0 ORDER BY if(bild1 != "",1,2) asc, position asc');
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten