2010-12-04 47 views
1

這裏是我的表格和我目前的方法。太多的查詢,所以任何最有效的方法來做到這一點?有效的方式來查詢內容列表,每個內容需要獲取標籤和類別列表

Table: contents 
content_id 

Table: taxonomy_terms 
tt_id 
type (tag or category) 
name 

Table: relationships 
content_id 
tt_id 

僞代碼:

mysql: query limit 20 contents from **contents** 
php: for each content 
    mysql: query tags and categories from **relationships** with content_id 

Number of queries: 1 + 20 = 21 

回答

1

你可以先遍歷第一個查詢,並完成類似

$ids = array(); 
$contents = array(); 
while ($row = $res->fetch_assoc()) 
{ 
    /* your existing code */ 
    /* such as fill-up an array */ 
    $contents[$row['content_id']] = $row; 

    $ids[] = $row['content_id']; 
} 

$sql = 'SELECT ... WHERE tt_id in('.implode(',', $ids).')'; 
/* fetch the tag/category results */ 
/* and update $contents with tag/category results */ 

有了這個,需要兩個查詢。
另外還有一個PHP循環,用於查看第一個查詢中的20個內容

相關問題