3

選択したいテーブルが2つあります。articlesコンテンツ管理システムのさまざまな記事を格納するテーブルとarticles_meta_data、記事テーブルのメタデータを格納するテーブルがあります。記事のメタデータを取得するには、を使用してarticles_meta_dataから選択しますarticle 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);
    }
}
4

3 に答える 3

6

テーブルを結合して、データベースに1回だけクエリを実行するようにします。

SELECT  b.*
FROM    articles a
        INNER JOIN articles_meta_data b
            ON a.ID = b.article_ID

参加についてさらに詳しく知りたい場合は、以下のリンクをご覧ください。

于 2013-01-02T07:33:53.293 に答える
0

2つのクエリを実行する必要がないように、結合クエリを使用する必要がありますが、最初に、このリンクを確認するために使用する結合を決定する必要がありますhttp://www.firebirdfaq.org/faq93/

ここでは、JOINを使用して、articles.ID列とarticles_meta_data.article_ID列に同じ値のレコードが選択されるようにします。

SELECT *,articles_meta_data.field1,articles_meta_data.field2 from articles JOIN articles_meta_data ON articles.ID = articles_meta_data.article_ID 
于 2013-01-02T08:55:47.677 に答える
-1

このようなこともできます。

Select * from articles JOIN articles_meta_data ON ID = article_ID 

これが他の方法でも役立つことを願っています。

于 2013-01-02T08:09:08.200 に答える