여러 테이블의 쿼리에 대한 도움이 필요합니다.mysql 쿼리에 대한 도움말
내 데이터베이스 : I이 테이블 다음 한 :
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
같은 URL이 : 나는 다음과 같은 쿼리를 작성하려는 . 그래서 나는user_name
을$_GET['user'];
user_name
(사용자 테이블에서) 고유하게 만듭니다. owner_id
에 대해guestbook_comments
의 모든 항목을 표시하고 싶습니다 (단user_name
만 알기 때문에user_id
을users
표에서 찾을 필요가 있습니다).guestbook_comments
테이블의comment_author_id
각각에 대해- , 나는
profile_photo
테이블에서 자신의 테이블users
에서user_name
및path
을 싶어.
내 방식 : 먼저 나는 특정 USER_ID에 대한 모든 방명록 코멘트를 얻기 위해 사용자와 guestbook_comments 테이블을 가입 할 수 있습니다. 그렇다면 while loop
에서 과 profile_photo
테이블을 합치면 각각 user_name
과 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
}
이 긴 질문과 도움을 주셔서 감사합니다.
을 찾아, 메모를 찾아 방명록 글을 발견, 사용자의
:
–@Craig White, 나는 전문가가 아니기 때문에 더 효율적이고 효과적인 방법이 있는지 알고 싶습니다. 효율적인 방법인지는 의심 스럽습니다. – sudeep