Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Abfrage unter Berücksichtigung einer Hilfstabelle

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Abfrage unter Berücksichtigung einer Hilfstabelle

    Hallo liebe Community,

    ich habe ein kleines Problem mit einer Datenbankabfrage. Es handelt sich hier um eine Art Soziales Netzwerk bei dem verschiedene Benutzer Bilder hochladen können etc. Die hochgeladenen Bilder werden alle auf einer Startseite nacheinander angezeigt. Es gibt allerdings auch die möglichkeit, bestimmte Benutzer zu ignorieren, sodass die ignorierten User die Bilder der entsprechenden Person auf der Startseite garnicht erst angezeigt bekommen.

    Also User 1 ignoriert User 2 -> User 2 werden Bilder von User 1 auf der Startseite nicht mehr angezeigt.

    Ich speicher mir die Ignorier-Einträge in einer Hilfstabelle (ignorierListe). Die hochgeladenen Bilder werden in der Tabelle bilder gespeichert. Hier mal kurz grob den Aufbau der Tabellen dargestellt.

    Tabelle Bilder:
    id
    fromUser
    timestamp

    Tabelle ignorierListe:
    id
    fromUser
    ignorierterUser

    Wie kann ich die oben dargestellte Abfrage nun erzeugen, sodass nur Datensätze selektiert werden, von denen ich nicht "ausgeschlossen" wurde?

    Oder ist es Servertechnisch besser, wenn ich alle Datensätze abfrage, die ignorierListe abfrage und dann vor der Ausgabe überprüfe, ob der User berechtigt ist, das Bild zu sehen?

    Danke für eure Hilfe

  • Matumba2
    antwortet
    Zitat von VPh Beitrag anzeigen
    PHP-Code:
    SELECT idfromUsertimestamp FROM Bilder WHERE fromUser NOT IN (SELECT ignorierteUser FROM ignorierListe WHERE fromUser UserIdentifier
    So in die Richtung sollte die Abfrage aussehen
    Sehr cool danke für die schnelle Antwort. Ein wenig angepasst und schon hat's funktioniert

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Bei (My)SQL würde das einfach so aussehen: SELECT ... FROM bilder b LEFT JOIN ignore i ON b.user_id=i.user_id WHERE ISNULL(i.user_id)

    Einen Kommentar schreiben:


  • VPh
    antwortet
    PHP-Code:
    SELECT idfromUsertimestamp FROM Bilder WHERE fromUser NOT IN (SELECT ignorierteUser FROM ignorierListe WHERE fromUser UserIdentifier
    So in die Richtung sollte die Abfrage aussehen

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Welche (No?)SQL-Datenbank ist denn im Einsatz?

    Einen Kommentar schreiben:

Lädt...
X