有人可以帮我解决一个mysql查询吗?

时间:2011-04-25 20:38:13

标签: mysql

我有一个关于从多个表构建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。

如果有人可以帮我查询,我会非常感激。

3 个答案:

答案 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;