как посчитать количество строк в связанной таблице - PullRequest
0 голосов
/ 17 июля 2011

В моей базе данных две таблицы

статьи со следующими полями

идентификатор автора post_date модификация title section_id просмотры рекомендуемого содержимого post_status

секции со следующими полями

  • sec_id description категория слагов

В моей модели есть функция, которая возвращает все сечения

function get_all() {
            $q = $this->db->select('sec_id,category,slug,description')
                            ->from('sections')
                        ->order_by('category','asc');
            $ret['rows'] = $q->get()->result();
            return $ret;
        }

Отображаю это в таблице

<div id="categories">

<div id="toolbar">
</div>

<table>
<thead class="table_header">
<tr>
<th><input type="checkbox" name="check_all" id="master_box" onclick="toggle(this)" /></th>
<?php foreach($fields as $field_name => $field_display):?>
<th><?php echo $field_display ?></th>
<?php endforeach; ?>
</tr>
</thead>

<tfoot class="table_header">
<tr>
<th><input type="checkbox" name="check_all" id="master_box" onclick="toggle(this)" /></th>
<?php foreach($fields as $field_name => $field_display):?>
<th><?php echo $field_display ?></th>
<?php endforeach; ?>
</tr>
</tfoot>

<tbody>
<?php foreach($categories as $cat):?>
<tr>
<td><input id="sec_id"name="id[]" type="checkbox" value="<?php echo $cat->sec_id; ?>" /></td>
<td><?php echo $cat->category; ?></td>
<td><?php echo $cat->description; ?></td>
<td><?php echo $cat->slug; ?></td>
<td></td>
</tr>
<?php endforeach;?>
</tbody>

</table>

</div>

Если вы заметили, что есть пустой тег. Он предназначен для отображения количества статей в категории (разделе).

Как узнать количество статей, связанных с каждой категорией?

1 Ответ

2 голосов
/ 17 июля 2011
SELECT s.sec_id,s.category,s.slug,s.description,COUNT(a.id) FROM sections s 
    LEFT JOIN articale a ON s.sec_id = a.section_id 
WHERE 1 
GROUP BY s.sec_id 
ORDER BY s.category ASC 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...