TABLE的SQL视图,带有条件COUNT的记录

问题描述 投票:0回答:1

我正在尝试为以下特定查询创建VIEW。

4张桌子

1. users(user_id, name, profilepic)
2. topics (topic_id, topic_by_id, topic_title, topic_data, timestamp)
3. likes (topic_id, liked_by_id, timestamp)
4. comments (topic_id, comment_by_id, comment_text, timestamp)

现在,我已经为前两个表创建了一个视图以获取数据。但是下一步是获取点赞和评论的数量,并查看当前用户是否对此主题喜欢或发表了评论。

[topics表是这里的主表,topic_by_iduser_id表中的usersliked_by_idcomment_by_id也是user_id

这是到目前为止我为从前两个表中获取初始数据所做的工作。

CREATE VIEW TOPICS_VIEW AS 
SELECT topic.topic_id,
topic.topic_by_id AS TBYID,
topic.topic_title,
users.user_id AS UserID,
users.name, 
users.profiepic
FROM users,topic
WHERE user.user_id = topic.topic_by_id

现在如何编辑此查询以包括喜欢和评论的数量,并检查用户是否对同一主题喜欢或发表评论?

感谢您的任何帮助。

php mysql sql sql-view
1个回答
0
投票
SELECT posts.post_id,
posts.post_creator_id AS Post_by_id,
users.user_id AS UserID,
users.f_name, 
users.profile_pic_url,
posts.post_title,
posts.post_text,
posts.post_image,
posts.post_location,
posts.post_timestamp,
posts.post_category,
posts.post_status,
(SELECT count(*) FROM post_likes WHERE users.user_id = post_likes.liked_user_id) as 
User_Liked,
(SELECT count(*) FROM post_comments WHERE users.user_id = 
post_comments.comment_creater_id) as User_Commented,
(SELECT count(*) FROM post_likes WHERE posts.post_id = post_likes.liked_post_id) as 
Total_Likes_On_Post,
(SELECT count(*) FROM post_comments WHERE posts.post_id = 
post_comments.comment_post_id) as Total_Comments_On_Post
FROM users,posts
WHERE users.user_id = posts.post_creator_id
© www.soinside.com 2019 - 2024. All rights reserved.