Hej.
Jag har ett nyhetsscript som använder 2 tabeller, tNews och tUsers.
från tNews använder jag ID News Author och Date, där Author är användarens id i tUser-tabellen. Det jag behöver hjälp med är att skriva ut användarnamnet som hör till det ID:t. Kolumnen heter cUser och ligger i tUsers.
Kanske blev dåligt förklarat men någon förstår nog :)
Jag gör ett försök. Nu vet jag inte vad dina fält i tabellen tusers heter, men jag använder id och username i mitt exempel.
$sql = "select n.id, n.news, n.author, n.date, u.username from tnews as n left outer join tusers as u on n.author = u.id";
$result = mysql_query($sql);
while ($array = mysql_fetch_assoc($result)) {
echo $array["news"] ."<br/>". $array["username"];
}
Skillnaden mellan en inner join och en left outer join är att du i en left outer join får alla rader från den tabellen som står till vänster i join-villkoret. Men om det finns rader i den högra tabellen som uppfyller join-villkoret då får du även dessa, annars får du en post med null i de kolumner som tillhör den högra tabellen.
En inner join får du bara poster ifrån om join-villkoret uppfylls för båda tabellerna.
Jag provade att lämna kolumnen cAuthor tom på en av nyheterna, och köra både outer och inner join för att se skillnaden, men det blev exakt samma resultat. Nyheten skrevs ut och det stod bara () där det ska vara (skribent).
edit: jag körde left join och left outer join. då blev det ingen skillnad menar jag. left inner join gav felmeddelande trots att cAuthor var satt. ??