简体   繁体   中英

Can someone help me with a mysql query please?

I have a question about building a mysql query from multiple tables. The tables are following:

comments: comment_id, entry_id, user_id, comment, time..
users: user_id, user_name..
profile_photos: photo_id, user_id, photo_name

I want to get all comments from comments table for a specific entry_id , and for all of those users(who wrote comment), i want to get the photo_id(from profile_photos table, and user_name from users table).

For example 2 users user_id "1" and "2" wrote comment on "entry_id" "1". I want to get the comments data from comments table for those two users, as well as their user_name and photo_id.

If anyone can help me with the query, i will be really thankful.

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

Add on whatever other columns from respective aliased tables ("c" = comment, "u" = users, "p" = photos)

The LEFT join is just in case there is no photo yet for a given user... it won't exclude any entries by such user.

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}

Try the following where entry_id is xxx, I included the user_name too

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;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM