有一个博客用户界面,我必须显示发布博客的用户的姓名和图片。在该部分下方,我需要显示在该帖子中标记的人的姓名
表格如下: -
profile_tbl
id user_id full_name pic
---------- + ------------------ + ----------------- ----- + + -----------------
1 2031 xyz img1.jpg
2 4582 abc img2.jpg
3 104 user1 img.jpg
4 3309 user2 aa.jpg
blog_tbl
id creator_id post_id message create_date
---------- + ------------------ + ----------------- ----- + ----------------- + -------------------------- --------------- +
1 2031 21 my first post 2014-01-14 19:30:17
2 4582 22 this is a test 2014-01-14 18:20:03
tagged_users
id creator_id post_id tagged_user_id
---------- + ------------------ + ----------------- ----- + + -----------------------------------
1 2031 21 4582
2 2031 21 104
3 2031 21 3309
如何通过单个查询获取此信息?
要求:-
1.发布此博客的用户的名称
2.发布此博客的用户的图片
3.使用此帖子中标记的用户姓名和身份
答案 0 :(得分:0)
blog_tbl
需要包含user_id(current user id)
列,以便您可以指定作者,tagged_users
也需要包含user_id(current user id)
,以便您知道是谁标记了此人。
答案 1 :(得分:0)
使用单个查询实现数据的一种方法是
select `p1`.`first_nm`,`p1`.`prf_pic`,
`b1`.`crt_date`,`b1`.`desc`,
group_concat( distinct(`p2`.`first_nm`)) as `tagged_names`,
group_concat( distinct(`p2`.`my_id`)) as `user_ids`
from `my_profile` `p1`
Inner join `conversation` `b1` on `b1`.`creator` = `p1`.`my_id`
Left JOIN `notification` `t1` on `t1`.`creator` = `p1`.`my_id`
Left join `my_profile` `p2` on `p2`.`my_id` != `p1`.`my_id`
AND `t1`.`creator` = `p1`.`my_id` AND `t1`.`to_id` = `p2`.`my_id`
group by `p1`.`my_id`
此查询将列出所有带逗号分隔的标记用户名和带逗号分隔的相应用户ID。因此,您可以根据需要操作结果
以下是我创建的示例