Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit SQL-Abfrage

Einklappen

Neue Werbung 2019

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

  • Problem mit SQL-Abfrage

    Hallo.
    Also kurz ein paar Worte zum Problem:

    Der Admin kann auf seiner Adminseite neue Filme anlegen und Benutzer können dann auf einer anderen Seite diese Filme kommentieren und bewerten.

    Um anzuzeigen, welchen Benutzern dieser Film gefällt, habe ich folgende SQL-Abfrage gemacht:

    SELECT b.benutzername
    FROM gefaellt g, benutzer b, film f
    WHERE g.fnr= '$fnr'
    and g.id = b.id
    and g.fnr = f.fnr


    Nun das Problem: Bei einem neu erstellten Film ist natürlich kein Datensatz in der Tabelle "gefaellt", das heißt, die Bedingung g.fnr = f.fnr wird nie zutreffen, und weiteres kann der Benutzer dann den Film auch leider nicht kommentieren.
    Ich habe da irgendwas von RIGHT und LEFT OUTER JOIN gehört, finde aber leider kein passendes Beispiel im Internet um das umzusetzten.

    Vll hat ja irgendwer mehr mit SQL zu tun und kann mir damit helfen.

    Danke

  • #2
    Dann lies die beiden Artikel zum Thema JOINs bei SELFHTML,
    http://aktuell.de.selfhtml.org/artikel/datenbanken/

    Da wird in einem Beispiel auf genau das genannte Problem eingegangen.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Zitat von Fredl Beitrag anzeigen
      Ich habe da irgendwas von RIGHT und LEFT OUTER JOIN gehört, finde aber leider kein passendes Beispiel im Internet um das umzusetzten.
      Genau, Du musst Deinen SQL auf ANSI JOINs umstellen. Das sieht dann in etwa so aus:

      Code:
      SELECT b.benutzername
       FROM gefaellt g
       RIGHT JOIN benutzer b
          ON g.id = b.id
       RIGHT JOIN film f
         ON g.fnr = f.fnr 
      WHERE g.fnr= '$fnr'
      Ich bin mir jetzt nicht sicher, ob es so stimmt, eventuell muss es auch LEFT JOIN lauten, aber dass kannst Du bestimmst selbst ausprobieren.

      Grüße
      Thomas

      Kommentar


      • #4
        Haut hin, vielen Dank

        Kommentar

        Lädt...
        X