Php 如何从多个表中选择数据

Php 如何从多个表中选择数据,php,mysql,sql,database,Php,Mysql,Sql,Database,我目前正试图为我的网站建立一个转发系统,但我遇到的问题是,我将posts表与retweets表分开,我找不到一种简单的方法将它们合并在一起 这些是我的桌子结构 retweets { retweet_id, retweet_post_id, retweet_user_id, retweet_time } posts { post_id, post_type, post_user_id, post_data, po

我目前正试图为我的网站建立一个转发系统,但我遇到的问题是,我将posts表与retweets表分开,我找不到一种简单的方法将它们合并在一起

这些是我的桌子结构

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
} 

因此,我试图获取这两个表,并按最近的表对它们进行排序(因此,如果转发是最近的,它将显示在行的第一个)。我怎么能这样做?还是在一个表中完成所有操作更有效?

您需要使用内部联接,通过适当的外键联接表:

SELECT
    *
FROM
    posts
INNER JOIN
    retweets
ON
    posts.post_id=retweets.retweet_post_id
如有必要,请阅读此处有关连接的内容:

还是在一张桌子里完成更有效


阅读有关要学习的内容,了解如何正确拆分表。因此,您可以避免并减少重复信息的数量。

您可以使用
JOIN
组合集合(基于匹配
retweet\u id
post\u id
),并使用
ORDER BY
根据
retweet\u时间进行排序

SELECT * 
FROM retweets
JOIN posts 
ON retweets.retweet_id=posts.post_id
ORDER BY retweet_time DESC

您可以在SQL查询中使用连接,将其与一个表联系起来,然后在完成该工作后,尝试使用两个表进行连接