0
我有兩個SQL-表:獲取類別和物品使用單個查詢
- 類:身份證,職稱,級別,父
- 文章:ID,標題,CATEGORY_ID
現在我要得到這樣的結果:
Category 1
Article 1
Artcile 2
Article 3
Category 2
Subcategory 1
Article 1
Artcile 2
Article 3
Subcategory 2
Article 1
Artcile 2
Article 3
Category 3
Article 1
Artcile 2
Article 3
我會做這種方式:
$categories = $db->prepare('SELECT * FROM categories WHERE level = 0');
$categories->execute();
while($category = $categories->fetch(PDO::FETCH_OBJ)) {
$sub_categories = $db->prepare('SELECT * FROM categories WHERE parent = :parent_id');
$sub_categories->bindParam(':parent_id', $category->id, PDO::PARAM_INT);
$sub_categories->execute();
while($sub_category = $sub_categories->fetch(PDO::FETCH_OBJ)) {
$articles = $db->prepare('SELECT * FROM articles WHERE category_id = :category_id');
$articles->bindParam(':category_id', $sub_category->id, PDO::PARAM_INT);
$articles->execute();
while($article = $articles->fetch(PDO::FETCH_OBJ)) {
echo $article->title.'<br />';
}
}
}
首先,這是非常糟糕的,因爲它只是從子類別(而不是類別)獲取文章,並且只選擇了一個深度級別。
第二:我使用三個querys,這是執行多次,只是爲了這個基本的東西。性能... :-(
我想解決這個問題只有一個SQL查詢這可能 (然後我會創造的產值......)
SQLfiddle:?http://sqlfiddle.com/#!2/2a4f2
什麼輸出你的願望? – 2014-09-30 20:47:03
@JayBlanchard我渴望成名和財富! – Charles 2014-09-30 20:52:47
只需要上面顯示的結果。這意味着文章的標題類別和標題... – user3142695 2014-09-30 20:53:50