Seite 1 von 1

problem left join

Verfasst: 29.09.2005 00:21
von klunzen
hab ein kleines newssystem am laufen und nutze eine mysql datenbank.. in der 2 tabellen werkeln...

in der einen tabelle stehen die allgemeinen daten: id, datum, titel, text und autor... wobei der autor eine zahl zahl enthält die auf die andere tabelle verweist... in der anderen tabelle stehen die daten des autors...

wenn ich jetzt alle daten mittels "select * from table1" ausgebe, so steht bei autor eine zahl... es soll da aber der name aus der anderen tabelle ausgegeben werden...

über einen left join müßte doch möglich sein den name anstatt der zehl anzuzeigen...

bitte um hilfe

Verfasst: 29.09.2005 01:01
von Clone

Code: Alles auswählen

SELECT *
FROM autoren
LEFT JOIN news ON news.autor = autoren.id
Die Bezeichnungen musst du noch anpassen, dann müsste es gehen und du kannst über die Bezeichnung der Spalte in der Autoren-Tabelle, in der der Name steht, auf den Namen zugreifen.

Verfasst: 29.09.2005 01:16
von Pyramide

Verfasst: 29.09.2005 01:20
von Clone
Ja, ich weiß, aber das bekommt er sicher noch selbst hin.

Verfasst: 29.09.2005 13:01
von klunzen
danke schonmal...
aber irgendwas passt bei mir nicht, dass liegt daran dass ich mich gestern schlecht ausgedrückt habe :oops:

nochmal paar sachen... tabelle1 = news ... tabelle2 = redakteure

in tabelle1 gibt es u.a. das feld autor wo die zahlen drin stehen 1,2,...
in tabelle2 gibt es u.a. das feld id und username.
tab1.autor ist also mit tab2.id verbunden.
dann gibt es in tab2 noch den username. diesen möchte ich mit den left join rausbekommen.

hoffe ich hab mich nun besser ausgedrückt.

mit folgendem befehl geht es nicht:

Code: Alles auswählen

SELECT *
FROM news 
LEFT JOIN redakteure ON redakteure.id = news.autor
getestet mit:

Code: Alles auswählen

while ($row = mysql_fetch_assoc($result)) {
    echo "<br>";
    foreach ($row as $key => $value) {
	    echo $key.".".$value. "  ";
	}
}
die;
(liefert ja alle werte die der sql-befehl abgibt)

Verfasst: 29.09.2005 21:20
von Clone
Gibt es denn eine Fehlermeldung?

Verfasst: 29.09.2005 22:01
von mristau2k5

Code: Alles auswählen

$sql = "SELECT r.*, n.* FROM (news AS n LEFT JOIN redakteure AS r ON r.id=n.autor)";
versuchs mal mit diesem Query

Verfasst: 30.09.2005 13:46
von klunzen
Clone hat geschrieben:Gibt es denn eine Fehlermeldung?
:oops: da ich nich viel mit sql eigentlich zu tun habe ist mir n kleiner aber feiner fehler unterlaufen...

es gibt felder die in beiden tabellen vorhanden sind... also muss ich tab1.feld schreiben und nicht nur feld... :roll:

jetze läufts einwandfrei... thx