Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 快速从两个表中选择数据_Php_Mysql_Sql_Join - Fatal编程技术网

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