2013-01-02 21 views
3

我有兩個表格可供選擇。我有一個名爲articles的表格,它爲我的內容管理系統存儲各種文章,另外一個名爲articles_meta_data的表格存儲了文章表格的元數據。爲了獲得文章的元數據,您可以使用article Id從articles_meta_data中進行選擇。我的代碼在這裏,並完美地工作。有沒有一種方法可以優化代碼並使其更快?從兩個表中選擇速度快的數據

$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); 
    } 
} 
+0

使用SQL JOIN,因此您不需要迭代執行每篇文章的元選擇。 –

+0

@MarkBaker如何?很抱歉,我在MySQL中並不擅長 – sammyukavi

+0

''mysql'-extension已過期,不再維護,它將被標記爲5.5棄用。改爲使用'PDO_MYSQL'或'MySQLi'。 http://php.net/en/mysql-connect – KingCrunch

回答

6

連接表,所以你只能查詢一次數據庫,如

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

爲了進一步更多瞭解加盟,請參見下面

鏈接
-1

你也可以這樣做..

Select * from articles JOIN articles_meta_data ON ID = article_ID 

希望這也可以幫助你以其他方式。

0

你應該使用,使你不需要火兩個查詢聯接查詢,但首先你必須決定哪些加入用於該檢查此鏈接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