我需要一些帮助来自多个表的查询。帮助mysql查询
我的数据库: 我有以下表格:
1. users (user_id, user_name, ..) //user_name is unique.
2. guestbook_comments(owner_id, comment_author_id, comment ..)
3. profile_photo(profile_photo_id, user_id, path)
我的问题: 我想建立一个下面的查询:
- 我有喜欢的网址
guestbook.php?user=sudeep
。所以我得到user_name
$_GET['user'];
user_name
是唯一的(在用户表中)。 - 我想显示来自
guestbook_comments
的所有条目为特定的owner_id
(但我只知道user_name
,所以我需要从users
表中找到user_id
)。 - 对于
comment_author_id
中的每一个guestbook_comments
表,我想从表users
和path
得到他的user_name
表profile_photo
表。
我的方法: 首先我加入的用户和guestbook_comments表来获取特定user_id的所有留言评论。然后在while loop
我加入users
和profile_photo
表分别得到user_name
和photo path
。
我非常怀疑我的方法是否有效。你能告诉我是否有正确的方法来做到这一点?
$sql = "SELECT u.user_id, g.owner_id, g.comment_author_id
FROM guestbook g
INNER JOIN users u ON u.user_id = g.owner_id
WHERE u.user_name = $user_name";
while($row = mysql_fetch_array($result)) {
$author_id = $row['comment_author_id'];
$sql = "SELECT u.user_name, p.path
FROM profile_photo p
INNER JOIN users u ON u.user_id = p.user_id
WHERE u.user_id = $author_id;
//display comment text from guestbook, user_name from users, and photo from profile_photo
}
非常感谢您阅读这个长期的问题和任何帮助。
这一切看起来不错?你的问题是什么?你的SQL查询失败了吗? – 2011-04-07 22:53:09
@Craig White,正如我所说,我想知道是否有更好,更有效的方式来做到这一点,因为我不是专家,我怀疑这是否是一种有效的方法。 – sudeep 2011-04-07 23:01:32