Tabel structuren:

***news_updates***

id|post_user|message|datum|del

***admins***

id|username|level


Nu zou ik met 1 query deze moeten uit de db halen:
username (id van admins = post_users), message, datum

Hoe krijg ik dit voor elkaar (het getal dat in het veld post_user staat is gelijk aan het id van een admin en die zijn username moet ik hebben)
je vraag is mij wat onduidelijk?

in 2 queries is namelijk veel makkelijker..

namelijk:

<?php
//database verbinding zelf regelen..

$sql = mysql_query("SELECT * FROM news_updates;")or die(mysql_error());
$bericht = mysql_fetch_array($sql);

echo 'datum: '.$bericht['datum'];
echo 'bericht: '.$bericht['message'];

$sql2 = mysql_query("SELECT * FROM admins WHERE id = ".$bericht['user_post'].";")or die(mysql_error());
$admin = mysql_fetch_array($sql2);

echo 'Geschreven door :'.$admin['username'];
?>
Die query is niet logisch en haalt bovendien ook niet de gewenste gegevens op. Dit komt meer in de richting:

SELECT 
    a.username, 
    n.message, 
    n.datum
FROM 
    admins AS a,
    news_updates AS n
WHERE
    a.id = n.post_user

ps. Eventueel dat je nog DATE_FORMAT() wilt gebruiken om de datum in een ander formaat te zetten.
@Blanche: Ik vind een 'echte' JOIN toch altijd wat fraaier en duidelijker:

SELECT 
    a.username, 
    n.message, 
    n.datum
FROM 
    admins AS a
        JOIN news_updates AS n ON a.id = n.post_user 
Kwestie van smaak. Een INNER JOIN is, in tegenstelling tot andere JOINS, nu eenmaal op meerdere manieren te schrijven.
Blanche schreef op 30.10.2007 19:07
Kwestie van smaak. Een INNER JOIN is, in tegenstelling tot andere JOINS, nu eenmaal op meerdere manieren te schrijven.
Helemaal mee eens!

Reageren