Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Richtige MySQL-Abfrage

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Richtige MySQL-Abfrage

    Hallo Gemeinde,

    heute habe ich mal wieder eine kleine Frage bzw. stehe vor einem "Abfrageproblem" der MySQL-Datenbank.

    Ich habe zwei Tabellen, in der einen stehen ne Menge Filme drin, in der anderen dann das Programm, wann der Film wo läuft.
    Nun möchte ich eine in einem Formular ein <select> Feld mit den Filmtiteln befüllen, ABER nur von denen, die auch in diesem Jahr laufen werden.

    Tabelle1 mit den Filmen heißt "Veranstaltung" (Titel und VNr)
    Tabelle2 mit dem Programm heißt "Programm" (Zeit als datetime und VNr als Referenz zum Film)

    Mein Ansatz war bisher:
    PHP-Code:
    $query_Recordset1 "SELECT  Veranstaltung.VNr, Veranstaltung.Titel, Programm.VNr, YEAR(Programm.Zeit)
     FROM Programm, Veranstaltung
     WHERE Veranstaltung.VNr = Programm.VNr
     AND YEAR(Programm.Zeit)="
    .$selJahr." ORDER BY Titel"
    Das gibt zwar alle Filme aus, die vorhanden sind und im ausgewählten Jahr laufen, aber die meissten der Filme werden doppelt und dreifach ausgegeben, da sie ja auch mehrmals im Jahr laufen können. Funktioniert also alles korrekt mittels dieser Abfrage.

    Ich brauche aber lediglich den jeweiligen Filmtitel nur EINMAL. Kann ich die Ausgabe der Filme irgendwie beschränken auf nur EINE Ausgabe pro Film?
    Mittels "LIMIT" beschränke ich leider nur die absolute Ausgabe der Abfrage...

  • #2
    Was du suchst sollte "DISTINCT" sein

    Kommentar


    • #3
      Code:
      SELECT DISTINCT …
      gibt dir alle abgefragten Werte nur einmal, d.h. es entfernt redundante Ergebnisse. sollte in mehreren "gleichen" Resultsets jedoch verschiedene Werte stehen, werden diese als distinct angesehn.

      also ganz sicher gehst du, wenn du dir nur die Film ID (Veranstaltung.Titel) ausgeben läßt und schließlich ausgibst.

      Kommentar


      • #4
        Danke für die schnelle Hilfe.

        DISTINCT hat geholfen. Alle Filme sind nur einmal da. Muss DISTINCT dabei immer an erster Stelle stehen
        PHP-Code:
        SELECT DISTINCT Veranstaltung.TitelVeranstaltung.VNr.... 
        oder geht es auch an anderer Stelle mitten in der Abfrage?
        PHP-Code:
        SELECT Veranstaltung.VNrDISTINCT Veranstaltung.Titel.... 

        Kommentar


        • #5
          gerne, sollte das thema erledigt sein, markier es doch bitte so *g* sonst klickt man immer aus versehen drauf - voll anstrengend und so

          Kommentar


          • #6
            Statt SELECT DISTINCT kannst du auch GROUP BY benutzen.
            [PHP]if ($var != 0) {
            $var = 0;
            }[/PHP]

            Kommentar

            Lädt...
            X