我有一个关于从多个表构建mysql查询的问题。 表格如下:
comments: comment_id, entry_id, user_id, comment, time..
users: user_id, user_name..
profile_photos: photo_id, user_id, photo_name
我想从评论表中获取特定comments
的所有entry_id
,并且对于所有这些用户(撰写评论),我想获取photo_id(来自profile_photos表和user_name)来自用户表)。
例如,2个用户user_id“1”和“2”在“entry_id”“1”上写了评论。我想从这两个用户的评论表中获取评论数据,以及他们的user_name和photo_id。
如果有人可以帮我查询,我会非常感激。
答案 0 :(得分:1)
SELECT
c.comment_id,
c.user_id,
c.comment,
c.time,
u.user_name,
p.photo_name
from
comments c
join users u
on c.user_id = u.user_id
left join profile_photos p
on u.user_id = p.user_id
where
c.entry_id = WhateverNumberYouWant
添加来自相应别名表的其他任何列(“c”=评论,“u”=用户,“p”=照片)
LEFT加入是为了防止给定用户没有照片...它不会排除此类用户的任何条目。
答案 1 :(得分:1)
SELECT comment, user_name, photo_name
FROM comments
JOIN users ON (comments.user_id = users.user_id)
JOIN profile_photos ON (users.user_id = profile_photos.user_id)
WHERE entry_id = {entry_id}
答案 2 :(得分:1)
尝试以下,其中entry_id是xxx,我也包括了user_name
select comments.comment,profile_photos.photo_id,users.user_name
from comments,users,profile_photos
where
comments.entry_id = xxx and
users.user_id = comments.user_id and
users.user_id = profile_photos.user_id;