2

我目前正在尝试为我的网站制作转推系统,但我遇到的问题是我的帖子表与转推表分开,我找不到将它们合并在一起的简单方法。

这些是我的表结构

retweets {
    retweet_id, 
    retweet_post_id, 
    retweet_user_id, 
    retweet_time
}
posts {
    post_id, 
    post_type, 
    post_user_id, 
    post_data, 
    post_private, 
    post_poster_ip, 
    post_time
} 

所以我试图获取这两个表并让它们按最新排序(因此,如果转推是最新的,它将首先显示在行中)。我怎么能这样做?还是在一张桌子内完成所有工作会更有效率?

4

2 回答 2

0

您需要使用 INNER JOIN,通过适当的外键连接表:

SELECT
    *
FROM
    posts
INNER JOIN
    retweets
ON
    posts.post_id=retweets.retweet_post_id

如有必要,请在此处阅读有关 JOIN 的信息:

http://www.w3schools.com/sql/sql_join.asp

还是在一张桌子内完成所有工作会更有效率?

阅读有关数据库规范化的信息以了解如何正确拆分表。因此,您可以避免异常并减少重复信息的数量。

于 2013-06-02T20:53:04.947 回答
0

您可以使用JOIN组合集合(基于匹配retweet_idpost_id),并使用ORDER BY排序基于retweet_time

SELECT * 
FROM retweets
JOIN posts 
ON retweets.retweet_id=posts.post_id
ORDER BY retweet_time DESC
于 2013-06-02T21:01:28.637 回答