选择具有相同ID的多个表?

时间:2011-03-07 12:59:45

标签: php mysql


我试图选择多个表,并希望将它们显示为属于一起。 我有3张桌子;用户,个人资料和评论 表用户具有以下行; id,名称,密码 轮廓; id,userid,bio,website 评论; id,userid,comment,date。

users表的id与profile和comments中的userid相同。我想显示所有结果,但是有序,所以该用户的评论和个人资料信息会以该用户显示,例如;

Username: Mister Noname
Bio: 25 years old
Website: http://google.com
Comments: Bla bla bla!!

Username: Jay Wit
Bio: 99 years old
Website: http://stackoverflow.com
Comments: Best website ever!

我尝试使用JOIN,但似乎无法让它正常工作,有人可以帮助我吗?
提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

select *
from users
inner join profile on profile.userid = users.id
inner join comments on comments.userid = users.id
where users.id = $id
order by users.id

这将为您提供每行(= user)所需的所有信息。如果您需要一些帮助来从PHP访问这些数据,我也可以提供帮助,请告诉我。

订单因用户ID而下降,但一切皆有可能,只需询问。

希望这有帮助。

显示数据

请看mysql_fetch_assoc,特别是这部分:

while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

$resultmysql_query返回的结果。

答案 1 :(得分:1)

尝试

SELECT u.name,p.bio,p.website,c.comment
FROM users u
JOIN profile p ON p.userid=u.id
JOIN comment c ON c.userid=u.id
ORDER BY u.id