INNER JOIN macht nicht das, was ICH will

Dieses Thema im Forum "Datenbanksysteme für das Web" wurde erstellt von 2nd, 25.08.2006.

  1. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Moin Leute,

    brauche Hilfe:

    Habe 2 Tabellen:

    content mit den Feldern

    • content_id als Primary Key
    • inhalt1
    • inhalt2 usw.

    und die Tabelle

    comments_report mit den Feldern

    • content_id als Fremdschlüssel für Tabelle content
    • inhalt1
    • inhalt2

    Ich möchte nun alle Inhalte aus der Tabelle comments_report anzeigen, die sich auf die content_id aus Tabelle content beziehen:

    $selectComments = "SELECT * FROM comments_reports INNER JOIN content ON comments_reports.content_id = content.content_id";

    Macht er aber nicht, er zeigt mir _alle_ Datensätze aus der Tabelle comments_report an. Warum?

    Danke,

    2nd

    PostScriptum: Im Moment habe ich das so gelöst, dass ich erst die content_id aus der Tabelle content auslese, als Variable abspeichere und dann mit einem simplen "... WHERE $id = comments_report.content_id" filtere. Aber das kann es ja wohl nicht sein?!?
     
  2. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Ach, mir fällt gerade ein, dass natürlich in content alle content_ids vorhanden sind die auch in comments_reports vorhanden sind. Wahrscheinlich zeigt er mir deswegen immer alle Kommentare an.

    Hmm, gibt es wohl keine andere Möglichkeit, als die id vorher festzulegen?

    2nd
     
  3. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    MacUser seit:
    05.01.2004
    Ich verstehe das Problem nicht.

    Gibt es in comments_reports Einträge, deren ID nicht in content vorkommt? Wenn dem nicht so ist, werden natürlich alle comment_reports angezeigt.

    Kannst Du mal Beispieldaten geben?
     
  4. 2nd

    2nd Thread Starter MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Genau Jakob, in content und comments_reports sind alle IDs vorhanden.

    Bsp:

    Tabelle content:

    Feld ID: 1
    Feld Text: Neue News und so weiter
    Feld Autor: 2ndreality

    Feld ID: 2
    Feld Text: Alte News und sonstiges
    Feld Autor: 3rdReality


    Tabelle comments_reports:

    Feld ID: 1
    Feld Fremdschlüssel: 1
    Feld Kommentar: Coole News
    Feld Autor: Fritze

    Feld ID: 2
    Feld Fremdschlüssel: 1
    Feld Kommentar: Langweilig
    Feld Autor: Flitze

    Feld ID: 3
    Feld Fremdschlüssel: 2
    Feld Kommentar: Schon bessere News
    Feld Autor: Klausen



    So sehen die Tabellen vereinfacht aus, ich habe sie nach den 2nf Normalisierung aufgebaut. Mein Weg ist jetzt der, dass ich aus Tabelle content die entsprechende News auslese (ID, Text, Autor), da ich die eh zum Anzeigen brauche und dann alle Kommentare dazu aus Tabelle comments_reports auslese auf die:

    HTML:
    WHERE comments_reports.ID = content.ID
    zutrifft.

    Richtig?

    Danke,

    2nd
     
Die Seite wird geladen...

Diese Seite empfehlen