INNER JOIN macht nicht das, was ICH will

2nd

2nd

Aktives Mitglied
Thread Starter
Dabei seit
25.07.2004
Beiträge
9.018
Reaktionspunkte
243
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?!?
 
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
 
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?
 
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
 
Zurück
Oben Unten