gpt4 book ai didi

php - 尝试在特定日期之后从多个 mysql 表中进行选择

转载 作者:行者123 更新时间:2023-11-29 12:43:45 25 4
gpt4 key购买 nike

好吧,现在对于我正在开发的一个社交网络项目,我想实现一个功能来显示自用户上次登录以来网站上发生的所有事件。

我有两张表,一张用于帖子,一张用于回复帖子。

帖子:

+----------+----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(256) | YES | | NULL | |
| comment | varchar(10000) | YES | | NULL | |
| date | datetime | YES | | NULL | |
| likes | int(11) | YES | | 0 | |
| deleted | int(4) | YES | | 0 | |
+----------+----------------+------+-----+---------+----------------+

回复:

+----------+----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| post | int(11) | NO | | NULL | |
| username | varchar(256) | YES | | NULL | |
| reply | varchar(10000) | YES | | NULL | |
| date | datetime | YES | | NULL | |
| deleted | int(4) | YES | | 0 | |
+----------+----------------+------+-----+---------+----------------+

(“回复”表中的帖子将其链接到其正在回复的帖子的 ID - 抱歉造成任何混淆)

日期在他们提交帖子或回复后立即确定。

我想做的是获取用户不在网站上时发布的所有帖子和回复,以显示他们离开时网站的事件。

尝试生成类似的东西

用户名1发布在主板上Username2 对 Username1 的帖子发表了评论

类似这样的事情。帖子和回复根据日期分散。

所以我要从这些表中查询:

SELECT * FROM replies 
WHERE date > arbitrary_date AND deleted=0
UNION ALL
SELECT * FROM posts
WHERE date > arbitrary_date AND deleted=0
ORDER BY date DESC;

我只是想获取所有回复和帖子的按日期排序的结果,以便我可以按创建时间的顺序显示它们,并将最新的回复和帖子放在最上面。但由于某种原因,我不知道如何获得正确的结果。要么数据在查询中被打乱,要么完全错误。

查询是我真正需要帮助的部分。我不太擅长 SQL,尽管进行了大量的谷歌搜索,但我似乎无法弄清楚这一点。

如果您需要澄清,请告诉我。我将非常乐意提供更多详细信息。

最佳答案

只需让它们返回相同的列,例如:

SELECT CONCAT(username, ' posted on ', board_name_column) as msg FROM posts ...
UNION
SELECT CONCAT(username, ' commented on ', board_name_column) as msg FROM replies JOIN posts ON replies.post = post.id ...

另一种选择:

SELECT 'post' AS type, username, board_name_column FROM posts ...
UNION
SELECT 'reply' AS type, username, board_name_column FROM replies JOIN posts ON replies.post = post.id ...

关于php - 尝试在特定日期之后从多个 mysql 表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25738915/

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