schwierige SQL

  • Hi Leute

    ich kämpfe seit 2 Tagen mit einer Abfrage die ich nicht hinbekomme.

    Da ich aber schon die Frage selbst nicht formulieren kann, kann mir auch google nicht helfen.

    Was will ich wissen?

    Ich will einige Daten aus Tabelle_1 auslesen ABER NUR!!! wenn in Tabelle_2 die Spalte group !=1 ist

    group kann allerdings auch mit 2-5 gefüllt sein. Diese Daten will ich aber nicht



    Code
    select k.k_id,k.k_name,k.konto,k.kudos,k.kapital,
    FROM_UNIXTIME(k.create_time) as Gründung  from table_1 as k
    Left Join table_2 as m on m.k_id = k.k_id
    where m.group not in (1) 
    group by k.k_id
    order by konto DESC;


    vielleicht hat einer ne Idee



    LG

    michi

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • Hast Du ein paar Beispieldaten als Dump? Im Moment werde ich nicht ganz schlau daraus, was Du eigentlich willst.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • NUR!!! wenn in Tabelle_2 die Spalte group !=1 ist

    group kann allerdings auch mit 2-5 gefüllt sein. Diese Daten will ich aber nicht

    Nur, wenn in Tabelle 2 group != 1 verstehe ich, aber was möchtest du mir mit dem 2-5 und dass du diese Daten dann nicht willst, sagen?


    Noch wichtig zu wissen:

    Was soll sein, wenn group NULL ist oder in Tabelle 2 kein passender Verweis gefunden wird?

    Was ist am aktuellen Resultset mit deiner Query unpassend?

  • Hi, was genau funktioniert denn nicht?

    Ich sehe eigentlich nur eine nicht genau definierte Column konto in der letzten Zeile. Also entweder

    SQL
    SELECT k.k_id, k.k_name, k.konto, k.kudos, k.kapital, FROM_UNIXTIME(k.create_time) AS Gründung FROM table_1 AS k
    LEFT JOIN table_2 AS m ON m.k_id = k.k_id
    WHERE m.group NOT IN (1) 
    GROUP BY k.k_id
    ORDER BY k.konto DESC;

    oder etwas vereinfacht

    SQL
    SELECT k.k_id, k.k_name, k.konto, k.kudos, k.kapital, FROM_UNIXTIME(k.create_time) AS Gründung FROM table_1 AS k, table_2 AS m
    WHERE m.k_id = k.k_id
    AND m.group NOT IN (1) 
    GROUP BY k.k_id
    ORDER BY k.konto DESC;
  • Nur, wenn in Tabelle 2 group != 1 verstehe ich, aber was möchtest du mir mit dem 2-5 und dass du diese Daten dann nicht willst, sagen?


    Noch wichtig zu wissen:

    Was soll sein, wenn group NULL ist oder in Tabelle 2 kein passender Verweis gefunden wird?

    Was ist am aktuellen Resultset mit deiner Query unpassend?

    Danke dass du dich damit beschäftigst :)

    group hat entweder 1-5 oder ist nicht vorhanden

    Beispiel :

    in group sind Ränge der Mitglieder

    1 ist Admin

    2 ist Co-Admin

    3 ist user usw.

    wenn kein Admin vorhanden ist, will ich die dazugehörigen Daten aus Tabelle 1 sehen

    Alle Daten die einen Admin haben will ich nicht.


    Das aktuelle query zeigt mir trotzdem alle Daten und nimmt einfach group=2 oder 3

    was er halt zuerst findet.......


    Ich hoffe das ist etwas vertsändlicher ;)

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • Das heißt die Beziehung von Tabelle 1 zu Tabelle 2 ist 1:cn

    Zu einem Eintrag in Tabelle 1 (k) können 0 bis mehrere Einträge in Tabelle 2 (m) sein (ich habe erst jetzt gesehen, dass m eine Spalte k_id hat), richtig?


    Und du möchtest die Daten aus Tabelle 1, wenn diese Entität (die in Tabelle 1 gespeichert ist) keine Benutzer (Entität, die in Tabelle 2 gespeichert ist) o.ä. mit der Rolle Admin (group=1) zugeordnet hat, richtig? Aber eigentlich sind dir die Einträge aus Tabelle 2 egal

  • Das heißt die Beziehung von Tabelle 1 zu Tabelle 2 ist 1:cn

    Zu einem Eintrag in Tabelle 1 (k) können 0 bis mehrere Einträge in Tabelle 2 (m) sein (ich habe erst jetzt gesehen, dass m eine Spalte k_id hat), richtig?


    Und du möchtest die Daten aus Tabelle 1, wenn diese Entität keine Benutzer o.ä. mit der Rolle Admin (group=1) zugeordnet hat, richtig? Aber eigentlich sind dir die Einträge aus Tabelle 2 egal

    ja genau Tabelle2 ist nur der Filter

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • SQL
    SELECT k.k_id, k.k_name, k.konto, k.kudos, k.kapital, FROM_UNIXTIME(k.create_time) AS Gründung FROM table_1 AS k, table_2 AS m
    WHERE m.k_id = k.k_id
    AND k.k_id NOT IN (SELECT k_id FROM table_2 WHERE group = 1) 
    GROUP BY k.k_id
    ORDER BY k.konto DESC;
  • Das Leben kann so einfach sein.... :D


    Vielen Dank das ist genau was ich wollte ;)

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • Hi Leute,

    altes Problem(ich bin zu dumm)und hänge wieder mal fest.

    Neue Frage:

    kann ich 2mal die selbe Tabelle joinen?

    oder einfacher:

    Wie kriege ich den Namen des Richters ?

    Folgende sql funktioniert ich will nur den Namen des Richters(judge) noch zusätzlich haben


    ich dachte mir das so, aber das klappt so nicht

    in user_table steht der Name in username (logisch :D )



    danke im Voraus

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • War wohl gestern doch etwas spät

    Einfach mal die richtig Fehlermeldung lesen wirkt Wunder

    hat sich erledigt ;)


    Danke trotzdem

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • ich weiss nicht ob ich mich so blamieren möchte :D



    Zitat

    LEFT JOIN user_table AS u ON p.user_id = u.id

    LEFT JOIN user_table AS r ON r.user_id = p.judge

    r.user_id hätte r.id sein müssen


    aber nicht weitersagen ;)

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE