我有2张桌子。第一个页面包含外键category_id,另一个表格类别包含id和title字段。
这是我的SQL查询:
SELECT categories.title as titleCategory, pages.title as titlePage FROM categories INNER JOIN pages ON pages.category_id = categories.id ORDER BY categories.title
想要的是显示如下页面和类别:
category 1
page 1
page 2
category 2
page 1
etc...
有没有办法使用foreach或者我必须使用2个查询?
非常感谢你的帮助。
答案 0 :(得分:0)
只需检查一个foreach循环。
$currentCategory = null;
foreach( $results as $result ) {
if( $currentCategory != $result['titleCategory'] ) {
$currentCategory = $result['titleCategory'];
echo $result['titleCategory'];
}
echo $result['titlePage'];
}
如果标题已更改,则仅打印出标题。你已经按照categoryTitle排序,所以如果类别没有改变,它只会打印pageTitle。
答案 1 :(得分:0)
假设PHP,但逻辑应该适用于任何语言。
$cur_cat = null;
foreach($results as $result){
if($cur_cat != $result['titleCategory']){
echo $result['titleCategory'];
}
$cur_cat = $result['titleCategory'];
echo $result['titlePage'];
}