Ankündigung

Einklappen
Keine Ankündigung bisher.

eine Spalte durch COUNT und GROUP BY in result aufteilen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • eine Spalte durch COUNT und GROUP BY in result aufteilen

    Hi,

    ich weiß nicht, ob es überhaupt möglich ist, aber vielleicht hat einer von euch ja eine idee.

    Es gibt 3 Tabellen

    table_main
    type
    -> foreign_key_contact

    table_contact
    -> foreign_key_home

    table_home

    das ganze wird von der table_home her aufgerollt, im Moment sieht es so aus:

    Code:
    SELECT table_home.*, table_main.type, COUNT(table_main.type) AS typeCount
    FROM table_home
    LEFT JOIN table_contact
        ON (table_contact.home_id IN (1,2,3))
    LEFT JOIN table_main
        ON (table_main.contact_id = table_contact.contact_id)
    GROUP BY type
    Es gibt derzeit 3 types, das heißt das mir pro 'home' zwischen 1 und 3 Zeilen zurück gegeben werden je nachdem welche types es gibt und dann halt die Anzahl. Meine Frage ist, ob es möglich ist das so zu machen, das pro 'home' nur noch 1 Zeile zurück gegeben wird und es dann 3 Spalten gibt 'type1Count', 'type2Count' und 'type3Count' oder ob ich das nachträglich zusammenführen muss?

    Danke euch schon mal


  • #2
    Ich hab jetzt eine mögliche Lösung gefunden, durch sub-selects
    Code:
    SELECT home.*, 
        (SELECT COUNT(type) 
         FROM table_main 
         LEFT JOIN table_contact ON (table_main.contact_id = table_contact.contact_id)
         LEFT JOIN table_home ON (table_contact.home_id = table_home.home_id)
         WHERE table_home.home_id = home.home_id
             AND type = 1) AS type1Count
    FROM table_home home
    home.home_id IN (1,2,3)
    Das Problem dabei ist aber, dass ich dann für jeden type ein extra sub-select machen müsste. Ist es möglich den AS variable zu machen?

    Kommentar

    Lädt...
    X