我目前正在尝试为我的网站制作转发系统,但我遇到的问题是我将posts表与转推表分开,我找不到将它们合并在一起的简单方法。
这些是我的表结构
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
}
所以我试图获得这两个表并让它们按最近的顺序排序(所以如果转推是最新的,它会在行中首先显示)。我怎么能这样做?或者将它们全部放在一个表中会更有效吗?
答案 0 :(得分: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
或者在一个表中完成所有操作会更有效吗?
了解要学习的database normalization,以及如何正确拆分表格。因此,您可以避免anomalies并减少重复信息的数量。
答案 1 :(得分:0)
您可以使用JOIN
来合并这些集合(基于匹配retweet_id
和post_id
),并使用ORDER BY
根据retweet_time
进行排序
SELECT *
FROM retweets
JOIN posts
ON retweets.retweet_id=posts.post_id
ORDER BY retweet_time DESC