kleines Abfrageproblem

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

  • kleines Abfrageproblem

    Hallo !


    Ich habe eine Tabelle mit folgendem Aufbau :
    id,sitzungsnummer,status

    Beispieldatensätze :
    1,137a04e745d4f91bca0057ab0dc32ab9,1
    2,137a04e745d4f91bca0057ab0dc32ab9,2
    3,137a04e745d4f91bca0057ab0dc32ab9,32
    4,137a04e745d4f91bca0057ab0dc32ab9,4
    5,137a04e745d4f91bca0057ab0dc32ab9,5
    6,137a04e745d4f91bca0057ab0dc32ab9,10
    7,227a04e566d4A22baa2257abdf999ab9,2
    8,227a04e566d4A22baa2257abdf999ab9,3
    9,227a04e566d4A22baa2257abdf999ab9,5
    10,227a04e566d4A22baa2257abdf999ab9,4
    11,227a04e566d4A22baa2257abdf999ab9,3
    12,227a04e566d4A22baa2257abdf999ab9,10

    d.h.
    2 verschiedene Sitzungsnummern mit verschiedenen Inhalten im Feld status.

    Ich brauche nun alle sitzungsnummern, die im Feld status keine 32 haben.
    Die 32 kennzeichnet eine Abschluss.
    Ich möchte mir also alle nicht abgeschlossenen Sitzungsnummern anzeigen.

    Ich hoffe ihr könnt mein Problem nachvollziehen.

    mfg
    Jogi

  • #2
    kannst Du subselects benutzen?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Das ganze mache ich mit php auf eine mysql-Datenbank

      Kommentar


      • #4
        na dann einfach die Abfrage mal mit != versuchen


        also quasi
        where status != 32

        oder einfach mal ausprobieren
        Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

        Kommentar


        • #5
          Na,Ja ganz so einfach ist es dann doch nicht.

          Kommentar


          • #6
            Original geschrieben von jogisarge
            Na,Ja ganz so einfach ist es dann doch nicht.
            Warum?

            Kommentar


            • #7
              Hier nochmal die Datensätze
              1,137a04e745d4f91bca0057ab0dc32ab9,1
              2,137a04e745d4f91bca0057ab0dc32ab9,2
              3,137a04e745d4f91bca0057ab0dc32ab9,32
              4,137a04e745d4f91bca0057ab0dc32ab9,4
              5,137a04e745d4f91bca0057ab0dc32ab9,5
              6,137a04e745d4f91bca0057ab0dc32ab9,10

              7,227a04e566d4A22baa2257abdf999ab9,2
              8,227a04e566d4A22baa2257abdf999ab9,3
              9,227a04e566d4A22baa2257abdf999ab9,5
              10,227a04e566d4A22baa2257abdf999ab9,4
              11,227a04e566d4A22baa2257abdf999ab9,3
              12,227a04e566d4A22baa2257abdf999ab9,10


              wenn ich mit
              PHP-Code:
              Select sitzungsnr from table where status != 32 
              prüfe, dann bekomme ich im ersten Teil beim ersten Satz gleich einen Treffer.
              Das wäre aber falsch, da ja der Satz mit der ID 4 den Status 32 hat.

              Ich müsste also Gruppen anhand der Sitzungsnr bilden, und dort dann jeden Satz auf status = 32 prüfen.
              Aber das bekomme ich irgendwie nicht als Abfrage gebacken.

              d.h. Die Sätze mit der gleichen Sitzungsnr bilden Gruppen.
              Und sobald in einer Gruppe ein Satz mit dem status 32 ist, dann ist die ganze Gruppe für mich nicht mehr interressant.
              Da ich sie aber später noch benötige, kann ich sie nicht aus der DB löschen.

              Gruss
              jogi

              Kommentar


              • #8
                ist 32 der höchste statuswert?
                Kissolino.com

                Kommentar


                • #9
                  nein,leider nicht.
                  Die Idee kam mir auch schon.
                  gruppieren und den Höchstwert prüfen.

                  Ich habe auch keinen Einfluss auf die Werte.

                  gruss
                  jogi

                  Kommentar


                  • #10
                    vorschlag mit 2 abfragen:
                    mit DISTINCT(sitzungsnummer) auf die 32, dann auf ALLE sitzungsnummern ... zieh die ergebnisarrays voneinander ab => php=>array-fkts
                    Kissolino.com

                    Kommentar


                    • #11
                      Code:
                      SELECT     s1.session_id
                      FROM       session s1
                      LEFT JOIN  session s2
                      ON         s1.session_id = s2.session_id
                      AND        s2.status = 32
                      WHERE      s2.id IS NULL
                      GROUP BY   s1.session_id
                      probier mal, sollte funktionieren ...
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Vielen Dank !!!

                        Das scheint zu gehen.
                        Ich werde das heute abend mal genau ausprobieren.

                        gruss
                        jogi

                        Kommentar

                        Lädt...
                        X