gpt4 book ai didi

mysql - 制作用户个人资料 Activity 提要

转载 作者:行者123 更新时间:2023-11-29 02:07:39 25 4
gpt4 key购买 nike

我需要构建一个 Activity 提要,以便在每个用户的个人资料页面上显示他们在网站上所做的事情。

共有三个表:评论、评分、用户

我希望提要包含用户发布的评论和评分。

在评论和评分表中,它存储发布它的用户的用户 ID,而不是用户名,因此对于新闻提要中的每个项目,它需要从用户表中选择用户 ID 与检索用户名。

提要中的所有条目都应按日期排序。

这是我得到的结果,尽管我知道它不正确,因为它试图将两者与用户表中的同一行匹配。

SELECT comments.date, comments.url AS comment_url, comments.user_id, ratings.date, ratings.url AS rating_url, ratings.user_id, users.id, users.username
FROM comments, ratings, users
WHERE comments.user_id=%s
AND comments.user_id=users.id
AND ratings.user_id=%s
AND ratings.user_id=users.id
ORDER BY ratings.date, comments.date DESC

最佳答案

加入。您似乎知道这一点,但方法如下: SELECT * FROM comments LEFT JOIN users ON comments.user_id = users.id

因此,据我所知,您正试图同时订购两件不同的东西。我想我能想到的最接近的是:

(SELECT comments.date AS date, users.username AS name, comments.url AS url CONCAT('Something happened: ',comments.url) AS text 
FROM comments LEFT JOIN users ON comments.user_id = users.id
WHERE users.id = %s)
UNION
(SELECT ratings.date AS date, users.username AS name, ratings.url AS url CONCAT('Something happened: ',ratings.url) AS text
FROM comments LEFT JOIN users ON comments.user_id = users.id
WHERE users.id = %s)
ORDER BY date DESC LIMIT 0,10

请注意,并集的两个部分的列是匹配的。我很确定这对于这样的工作是必需的。这就是为什么我有那个 CONCAT 语句,它可以让你构建一个在评级和评论之间工作不同的字符串。

关于mysql - 制作用户个人资料 Activity 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3105653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com