SELECT Abfragen kombinieren

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

  • SELECT Abfragen kombinieren

    Hallo,
    ist vieleicht eine blöde Frage, aber ich habe jetzt schon eine Stunde herumprobiert und komme irgendwie zu keiner Lösung. Ich will 2 Select Abfragen kombinieren:

    SELECT * FROM spiele WHERE (anzahl_bewertung > 10) AND (wertung = (SELECT MAX(wertung) FROM spiele))

    Was mache ich falsch ?

    Gruss
    Martin

  • #2
    Re: SELECT Abfragen kombinieren

    Original geschrieben von MaAnHe
    Was mache ich falsch ?

    Gruss
    Martin
    Du nennst nicht das Datenbank System welches du verwendest !!

    Dein Query sollte in einigen Umgebungen funktionieren in anderen eben nicht !

    Kommentar


    • #3
      ICh glaube, für das was du machen möchtest, brauchst du keinen Sub Select, der auch erst aber mySQL >= 4 geht.

      Code:
      SELECT * FROM spiele WHERE (anzahl_bewertung > 10) AND (wertung = MAX(wertung))
      Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

      Kommentar


      • #4
        Funktioniert nicht

        Hallo,
        vielen Dank für Deine Antwort aber es funktioniert leider nicht. Ich erhalte die folgende Fehlermeldung:

        Invalid use of group function

        Ich verwende MySQL 3.23.47

        Gruss
        Martin

        Kommentar


        • #5
          teste das mal.... aber ohne garantie (wie immer )

          Code:
          SELECT * FROM spiele HAVING anzahl_bewertung > 10 AND wertung = MAX(wertung)
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Hallo,
            jetzt kommt zwar keine Fehlermedung mehr aber auch kein Ergebnis??? Obwohl die Abfragen alleine beide ein Ergebnis liefern und eigendlich auch beide Bedingungen erfüllt sein müssten.

            Kann es vieleicht mit den Datentypen zusammen hängen:
            anzahl_bewertung ist int
            wertung ist float

            Gruss
            Martin

            Kommentar


            • #7
              nein. an den feldtypen liegt es definitiv nicht.

              es liegt an deinen daten.

              was willst du denn geliefert haben mit o.g. query.

              was steht denn in den feldern?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Hallo,

                Also ich betreibe eine Homepage mit Spielen für das Betriebssystem BeOS. Das ganze ist Datenbankbasierend. Jeder Eintrag für ein Spiel besteht aus einer Titel, Beschreibung, Bewertung und Anzahl der Bewertungen.
                Ich will jetzt das am Besten bewertete Spiel ermitteln, das aber mindestens 10 Bewertungen erhalten haben sollte.

                Gruss
                Martin
                www.beosspiele.de

                Kommentar


                • #9
                  probiere mal '>= 10' aus
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Kein Erfolg,
                    das Problem liegt auch wahrscheinlich nicht daran, da die Spiele zum Teil über 20 Wertungen haben. Das ganze kann doch nicht so schwierig sein, dacht ich zumindest gestern noch...

                    Ich werde jetzt wohl doch eine Lösung mit PHP fabrizieren, auch wenns ein bischen aufwendiger ist, zumindest von den Codezeilen her.

                    Trotzdem Danke für Eure Hilfe

                    Gruss
                    Martin

                    Kommentar


                    • #11
                      wieso? mit der db kannst du das schon machen. nur können wir ja deine tabellen nicht erraten. wir brauchen hier schon mehr infos....
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Also gut nächster Versuch

                        Hallo,
                        ich weiss nicht was ich noch schreiben soll vieleicht mal einen Dump der Datenbank-Tabelle:

                        Code:
                        CREATE TABLE spiele (
                          id int(11) NOT NULL auto_increment,
                          titel varchar(20) NOT NULL default '',
                          text text NOT NULL,
                          urlbild varchar(15) NOT NULL default '',
                          urldown varchar(100) NOT NULL default '',
                          urlhome varchar(50) NOT NULL default '',
                          grafik float NOT NULL default '0',
                          sound float NOT NULL default '0',
                          gesamt float NOT NULL default '0',
                          sprache varchar(15) NOT NULL default '',
                          sprache2 varchar(15) NOT NULL default '',
                          anz_bewertung int(11) NOT NULL default '0',
                          datum date NOT NULL default '0000-00-00',
                          kategorie varchar(20) NOT NULL default '',
                          PRIMARY KEY  (id)
                        ) TYPE=MyISAM;

                        Wie bereits geschrieben, will ich die beste Wertung "gesamt" ermitteln die aber mindestens 10 Bewertungen "anz_bewertung" erhalten haben soll

                        Gruss
                        Martin


                        EDIT:
                        code.tags by Abraxax
                        Zuletzt geändert von Abraxax; 16.08.2003, 21:48.

                        Kommentar


                        • #13
                          wo bitte ist das feld wertung in deiner tabelle? ich konnte es nicht finden.

                          kann es sein, dass du auch in php nicht or die(mysql_error()) verwendest? damit wärest du nämlich schnell darauf gestoßen, dass es das feld in der tabelle nicht gibt.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Erklärung

                            Hallo,

                            OK also ich hatte in dem Forum die Bewertung mit wertung bezeichnet damit es etwas verständlicher ist.

                            In Wirklichkeit gibt es 3 verschiedene Wertungen eine für Grafik (grafik), eine für Sound (sound) und eine Gesamtbewertung (gesamt), wobei die auswahl für das beste Spiel nur von der Gesamtbewertung(gesamt) abhängig gemacht werden soll.

                            Gruss
                            Martin

                            Kommentar


                            • #15
                              Code:
                              SELECT * FROM spiele WHERE anz_bewertung >= 10 ORDER BY gesamt DESC
                              holt alle datensätze, bei denen anz_bewertung min. 10 ist,
                              sortiert (absteigend) nach gesamt
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X