l0g1t3ch
Goto Top

INNER JOIN - als ob!

Hallo liebe Gemeinde,

Derzeit arbeite ich an einem Datenbankprojekt, doch leider stellt sich mir direkt recht früh ein kleiner stolperstein in den Weg face-sad

Dank meinem Freund Google habe ich in Erfahrung gebracht das es möglich ist Datenbanktabellen mit einem INNER JOIN Befehl zu verknüpfen.
Ebenso habe ich die Syntax für mich so glaube ich zumindest verstanden und auch umgesetzt, jedoch funktioniert der SQL_ORDER nicht so richtig.

Hier mal der SQL Befehl :

$SQL = 'SELECT * FROM guestbook INNER JOIN comment ON guestbook.id = comment.idg';  

Die Tabellen heißen wie oben zu erkennen, "guestbook" und "comment", die Spalte ID bei guestbook ist zugleich der Primärschlüssel welcher mit "auto_increment" gefüllt wird.
Die Tabelle comment enthält dafür eine "idg" Spalte ( steht für ID guestbook ), sie wird noch "manuell" gefüllt.

Das Ergebnis sollte ja so aussehen das er mir wenn ich dann sage

$test = mysql_query($SQL);
$zeile = mysql_fetch_array($test);

zumindest folgendes ausgibt bei echo $zeile['id']; bzw echo $zeile['idg'];

die beiden gleichen ID nummer oder? :D

Lieben Gruß Benjamin

Content-ID: 182749

Url: https://administrator.de/contentid/182749

Ausgedruckt am: 22.11.2024 um 07:11 Uhr

BadFsaadKl
BadFsaadKl 28.03.2012 um 17:21:58 Uhr
Goto Top
Moin,

also SQL technisch sieht es richtig aus.
Hast du den Befehl mal direkt auf der Datenbank ausgeführt, ob hier die gewünschten Werte zurück kommen ?

MfG BadFsaadKl
Midivirus
Midivirus 28.03.2012 um 21:09:46 Uhr
Goto Top
grundsätzlich muss jede Spalte einen eindeutigen Namen haben. Es kann zwar zweimal ID geben, welches Ergebnis kommt, weiß ich nicht, da nie getestet.

sonst hol doch einfach mit " guestbook.id as guesid, comment.* " nur die gewollten Felder

Midi
07alex07
07alex07 29.03.2012 um 08:53:36 Uhr
Goto Top
Nie mit * arbeiten.
Immer die Felder schreiben, die man haben will


guestbook.FELD
comment.FELD

Oder so kürzer
$SQL = 'SELECT c.name, c.datum FROM guestbook AS g INNER JOIN comment AS c ON g.id = c.idg';