Ergebnis 1 bis 5 von 5

Thema: Einträge einer Datenbankabfrage mit Join AUSSCHLIESSEN

  1. #1
    Unregistriert
    Gast

    Standard Einträge einer Datenbankabfrage mit Join AUSSCHLIESSEN

    Hallo,

    ich habe eine Tabelle namens "news" und eine Tabelle "news_hidden":

    SELECT s.* FROM `news` AS n JOIN `news_hidden` AS nh ON nh.status_id = n.news_id WHERE nh.user_id <> 2

    Die Tabelle sieht ca so aus:

    NEWS:
    +-----------+
    + news_id +
    +-----------+
    + 1 --------+
    + 2 --------+
    + 3 --------+
    + 4 --------+
    +-----------+

    und in News_hidden steht zB:
    +-----------+----------+
    + news_id + user_id +
    +-----------+----------+
    + 1 --------+ 2 -------+
    + 2 --------+ 2 -------+
    +-----------+----------+

    Ich möchte also erreichen, dass für den Benutzer mit der user_id = 2, die Einträge 1 und 2 nicht aus der Datenbank geholt werden - ich erreiche aber, egal, wie ich es versuche nur das Gegenteil, nämlich, dass genau diese zwei Einträge geholt werden.
    Mir leuchtet auch ein wieso, und warum die obere Abfrage 0 Zeilen ausgibt.

    Aber ich hab keine Ahnung, wie ich das Gegenteil davon erreiche ?

    Hat jemand eine Idee ?
    Lg
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Unregistriert
    Gast

    Standard AW: Einträge einer Datenbankabfrage mit Join AUSSCHLIESSEN

    Bin nun auf folgende Lösung gekommen:

    SELECT s.*, sh.* FROM `status` AS s LEFT JOIN `status_hidden` AS sh ON sh.status_id = s.status_id AND sh.user_id = 1 WHERE sh.user_id IS NULL

    Aber irgendwie gefällt mir das nicht, ich kann mir nicht helfen...

    Jemand, der vllt einen saubereren Lösungsansatz hat?

  3. #3
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Einträge einer Datenbankabfrage mit Join AUSSCHLIESSEN

    Erstmal: Welchem Zweck dient die Tabelle `news_hidden`? Für mich sieht die ganz stark überflüssig aus, aber erklär doch mal.

    Alternativ schonmal:
    Code:
    SELECT 
      news_id
    FROM
      news
    WHERE
      news_id NOT IN(SELECT news_id FROM news_hidden WHERE user_id=2)
    Deine erste Abfrage sollte aber eigentlich auch hinhauen, mal abgesehen davon, dass du die nicht eins-zu-eins kopiert sondern hier fürs Forum abgeändert hast, was ein absolutes no-go ist, da dadurch nur potentiell weitere Fehler entstehen die das eigentlich Problem verschleiern. -> SELECT s.* -> s ist in deiner Abfrage nicht definiert.

    Ansonsten noch:
    http://www.php-faq.de/q-sql-select.html
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  4. #4
    Unregistriert
    Gast

    Standard AW: Einträge einer Datenbankabfrage mit Join AUSSCHLIESSEN

    Status ist nicht wirklich selbsterklärend, tatsächlich handelt es sich aber um ein News-Script, und um dies verständlicher rüberzubringen hab ich das in News umbenannt.

  5. #5
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Einträge einer Datenbankabfrage mit Join AUSSCHLIESSEN

    Ich meinte mit überflüssig, dass ich nicht das Gefühl habe, das die Tabelle eine n:m-Beziehung abbildet, sondern vielmehr nur eine (überflüssige) Erweiterungstabelle darstellt.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

Ähnliche Themen

  1. Downloadfunktion in Datenbankabfrage
    Von homer im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 17.01.2009, 13:08
  2. Mich dem System ausschliessen
    Von Shyne im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 23.04.2008, 16:54
  3. Anzahl der Einträge einer Tabelle
    Von Schrimms im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 17.02.2008, 17:33
  4. sql - join
    Von phore im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 29.06.2005, 12:44
  5. einträge einer ebene abrufen?!?!
    Von golden im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 13.08.2004, 17:14

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •