Php 快速从两个表中选择数据
我有两个表要从中选择。我有一个名为Php 快速从两个表中选择数据,php,mysql,sql,join,Php,Mysql,Sql,Join,我有两个表要从中选择。我有一个名为articles的表,它存储我的内容管理系统的各种文章,还有一个名为articles\u meta\u data的表,它存储文章表的元数据。为了获取文章的元数据,您可以使用文章Id从文章元数据中进行选择。我的代码就在这里,工作得很好。有没有一种方法可以优化代码并使其更快 $result = mysql_query("SELECT * FROM articles"); while ($row = mysql_fetch_object($result)) {
articles
的表,它存储我的内容管理系统的各种文章,还有一个名为articles\u meta\u data
的表,它存储文章表的元数据。为了获取文章的元数据,您可以使用文章Id
从文章元数据中进行选择。我的代码就在这里,工作得很好。有没有一种方法可以优化代码并使其更快
$result = mysql_query("SELECT * FROM articles");
while ($row = mysql_fetch_object($result)) {
$result2 = mysql_query("SELECT * FROM articles_meta_data WHERE article_ID=" . $row->ID);
while ($row2 = mysql_fetch_object($result2)) {
var_dump($row2);
}
}
连接表,以便只查询数据库一次,例如
SELECT b.*
FROM articles a
INNER JOIN articles_meta_data b
ON a.ID = b.article_ID
要进一步了解join,请参阅下面的链接
- 您也可以这样做
Select * from articles JOIN articles_meta_data ON ID = article_ID
希望这也能在其他方面对您有所帮助。您应该使用join query,这样您就不需要启动两个查询,但首先您必须决定使用哪个join来检查此链接 在这里,我们将使用JOIN,以便为列articles.ID和articles\u meta\u data.article\u ID选择具有相同值的记录
SELECT *,articles_meta_data.field1,articles_meta_data.field2 from articles JOIN articles_meta_data ON articles.ID = articles_meta_data.article_ID
使用SQL联接,这样您就不需要迭代执行每篇文章的meta select。@MarkBaker怎么做?很抱歉,我对mysql不是很在行,
mysql
-扩展已经过时,不再维护,5.5版会将其标记为已弃用。使用PDO_MYSQL
,或者MySQLi
。