[mySQL] GROUP BY ohne JOIN

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

  • [mySQL] GROUP BY ohne JOIN

    Hi.

    Ich moechte in meinen Query GROUP BY hinzufuegen, klappt aber nicht. Brauche ich da unbedingt ein Join fuer? Weil alle Beispiele die ich gefudnen haben, nur joins hatten.

    Ich habe aber nur eine Tabelle, in der die gleichen items mehrfahc vorkommen. wenn sie mehrfahc vorkommen, sollen sie gezaehlt werden, eigentlich logisch, oder? ;-)

    Das hier soll GROUP BY bekommen:
    Code:
    SELECT *
    FROM wnkit_equipment
    WHERE system = '$kit_system'
    ORDER BY equipmentid DESC
    Udn so soll es laufen, tut es aber nicht:
    Code:
    SELECT *, COUNT(*) AS qty
    FROM wnkit_equipment 
    WHERE system = '$kit_system' 
    ORDER BY equipmentid DESC 
    GROUP BY make, model, type, system
    danke im voraus!

    ps: mySQL
    EDIT:
    Beitrag wieder in ursprüngliche Form zurückgebracht.
    Zuletzt geändert von wahsaga; 26.09.2005, 15:31.
    Immer schoen den Quelltext brechen....
    Sorry: UMBRECHEN!

  • #2
    na, gibt es eine fehlermeldung?

    Kommentar


    • #3
      Wenn ich den Kram in MySQL ausfuehren will (in PHP klappts auch net), dann kommt bei:

      Code:
       SELECT * , COUNT( * ) AS qty
      FROM wnkit_equipment
      WHERE system = '$kit_system'
      ORDER BY equipmentid DESC
      GROUP BY make
      LIMIT 0 , 30
      folgende Meldung:
      MySQL said: Documentation
      #1064 - You have an error in your SQL syntax;
      check the manual that corresponds to your
      MySQL server version for the right syntax to
      use near 'GROUP BY make LIMIT 0, 30' at line 1
      Steven


      ps: hab natuerlich bei WHERE einen vernuenftigen wert eingetragen
      Zuletzt geändert von scasburn; 26.09.2005, 11:57.
      Immer schoen den Quelltext brechen....
      Sorry: UMBRECHEN!

      Kommentar


      • #4
        reihenfolge war falsch.

        loesung:

        SELECT * , COUNT( * ) AS qty
        FROM wnkit_equipment
        WHERE system = '6514651651'
        GROUP BY make
        ORDER BY equipmentid DESC
        LIMIT 0 , 30



        darauf kann ich jetzt aufbauen. danke fuer den fehler-denkanstoss *g* dadruch hab ich es in mysql getestet.... das ich sowas bisher nie so gemacht hab ist wohl saudaemlich *g*
        Zuletzt geändert von scasburn; 26.09.2005, 14:03.
        Immer schoen den Quelltext brechen....
        Sorry: UMBRECHEN!

        Kommentar


        • #5
          So, ihr sehr ja die Loesung, mein problem bei der sache sit nur folgende:

          die ID dieser gruppierten Zeile hat nur die ID des ersten Items.
          Also wenn ich items eintrag, die bekommen die IDs 1-5, dann haben die im Gruppierten Satz nur die ID "1"

          Wie kann man es wohl Loesen, dass zB dann darin "1,2,3,4,5" steht?

          Oder sit das sogar schion so, als Array oder so ein Kram?

          MfG Steven



          EDIT:
          schriftgröße wieder normalisiert.
          wahsaga

          Zuletzt geändert von wahsaga; 26.09.2005, 14:57.
          Immer schoen den Quelltext brechen....
          Sorry: UMBRECHEN!

          Kommentar


          • #6
            habe selbiges problem und verzweifel daran siehe mein problem

            Kommentar


            • #7
              OffTopic:
              Select id,name,min(preis)as preis from TEST group by name
              ergebnis.
              id | name | preis
              1 | a | 1.79
              sollte aber
              id | name | preis
              3 | a | 1.79
              sein, da ich mit der passenden id weiter arbeiten möchte
              jemand ne idee?


              Hab dein Problem ja schon gesehen, verstehe aber nicht, warum du BROUP BY nimmst, wenn du nur den niedrigsten Preis willst. An deiner Stelle wuerd ich folgendes machen:

              Code:
              SELECT id, name, preis
              FROM test
              WHERE preis = MIN(preis)
              Ich weiss nicht, ob das richtig ist, aber das kaem mir so schnell in den sinn
              Immer schoen den Quelltext brechen....
              Sorry: UMBRECHEN!

              Kommentar


              • #8
                MEHRERE IDs

                Code:
                SELECT *, COUNT(*) AS qty
                FROM wnkit_equipment
                GROUP BY make
                ORDER BY equipmentid DESC
                Hier bekomme ich als Ergebnis sowas wie:
                | ID | make | ......... | qty
                ----------------------------------
                | 1 | HP | ..... | 10
                | 11 | lala | ...... | 21
                usw...


                Ich moechte aber im Feld ID alle IDs stehen haben.
                | ID | make | ......... | qty
                ------------------------------------------------------------
                | 1,2,3,4,5,6,7,8,9,10 | HP | ..... | 10


                gibt es da eine moeglichkeit?
                Immer schoen den Quelltext brechen....
                Sorry: UMBRECHEN!

                Kommentar


                • #9
                  Re: MEHRERE IDs

                  1. unterlasse es bitte, die schrift für den kompletten beitrag durchgehend fett und extra groß zu machen!

                  2. *zusammenführ*, da es sich schließlich immer noch um das gleiche problem zu handeln scheint. bitte doppelpostings ebenfalls unterlassen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Mhhh sehr "intelligenter" Schachzug.

                    Das 2te Problem basiert zwar auf dem anderen, ist aber besser unabhaengig vom anderen Problem zu verstehen.
                    Durch deine Zusammenfuehrung wird ein hilfsbereiter User gezwungen sich die schon geloeste Aufgabe durchzulesen. Erklaer mir bitte, worin da der Nutzen steckt?
                    Des Weiteren wollte ich mit der "fetten" Schrift nur darauf hinweisen, wo im Moment das Problem liegt, weil ich jemand anderen versucht habe eine Loesung(?) zu geben.

                    Wenn dir die Zusammenlegung auf Kosten der Uebersicht wichtiger ist, dann hattest du gerade vollen Erfolg. Wird sich wohl keiner mehr den Topic soweit durchlesen um bis zu meiner Frage durchzustossen...

                    MfG der " " Steven
                    Immer schoen den Quelltext brechen....
                    Sorry: UMBRECHEN!

                    Kommentar


                    • #11
                      Und wenn dir daran gelegen ist, durch deine Meckerei eine Problemlösung ganz zu verhindern, stehst du auch ganz kurz vor dem Erfolg.

                      Und dein Eingangsposting habe ich jetzt auch wieder auf den ursprünglichen Zusatdn zurückgesetzt.
                      Unterlasse es bitte, nach längerer Zeitspanne Postings noch grundlegend abzuändern! Die Editierfunktion ist zum Ausbessern kleinerer Fehler gedacht, nicht zum nachträglichen Ändern des Inhaltes/Sinns eines kompletten Postings. Wenn du dich daran nicht ab jetzt hältst, wird dir das Edit-Recht ganz entzogen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Wenn du es als Meckerei siehst, sei es dir gegoennt. Das Post sollte dir nur sagen, dass es einen Grund hatte, warum ich einen 2ten Thread aufgemacht habe.
                        Die Loesung des Ganzen hab ich schon gefunden, daher ist es mir eigentlich auch Schnuppe.

                        Und dein Eingangsposting habe ich jetzt auch wieder auf den ursprünglichen Zusatdn zurückgesetzt.
                        Unterlasse es bitte, nach längerer Zeitspanne Postings noch grundlegend abzuändern! Die Editierfunktion ist zum Ausbessern kleinerer Fehler gedacht, nicht zum nachträglichen Ändern des Inhaltes/Sinns eines kompletten Postings. Wenn du dich daran nicht ab jetzt hältst, wird dir das Edit-Recht ganz entzogen.
                        Ich habe den ersten Thread meines Erachtens nach sehr sinnvoll geaendert, wieder zum Zweck der Uebersichtlichkeit.
                        Quasi:
                        if (selber_problem_damit) {
                        read_ab_oben(ratlosigkeit);
                        }
                        else {
                        gehe_direkt_zum problem(viel_wissen);
                        }

                        Da hier jetzt weiterhin 3 Probleme in einem Thread laufen... naja... lassen wir es lieber. Ich wollte weder dich angreifen, noch sonstwas. Habs im Guten gemeint, wenn du es gerne auf andere Art loesen moechstest, dann ahst du bestimtm auch deine Gruende dafuer, an denen ich nicht laenger "herummeckern" will.

                        Willst du wieder mein Freund sein? *ironie*
                        Immer schoen den Quelltext brechen....
                        Sorry: UMBRECHEN!

                        Kommentar

                        Lädt...
                        X