我需要一些幫助來自多個表的查詢。幫助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