SQL Просмотр таблицы и с записью для условий COUNT - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь создать VIEW для указанного c запроса следующим образом.

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)

Теперь я создал представление для первых двух таблиц чтобы получить данные. Но следующий шаг - получить количество лайков и количество комментариев и посмотреть, понравился ли текущий пользователь или прокомментировал эту топи c.

topics Таблица является основной таблицей, topic_by_id это user_id в users таблице, а liked_by_id и comment_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

Теперь, как мне отредактировать этот запрос, включив в него количество лайков и комментариев, и проверив, понравился ли пользователь той же теме или прокомментировал ее? c?

Любая помощь приветствуется .

1 Ответ

1 голос
/ 01 февраля 2020
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
...