Я помню, как делал это в классе DB, как будто давным-давно, но не могу вспомнить это и не могу найти нужные слова.
Я пытаюсь по существу перевернуть запрос, которыйсоздает foreach, а затем запускает другой запрос, основанный на информации из первого, в один запрос.Более понятно, у меня есть две таблицы членов и записей.Для наших целей участники имеют два столбца: member_id, member_name, а записи имеют entry_id, channel_id, author_id.Author_id - это FK to member_id.
Я хочу подсчитать количество записей каждого автора и сделать это в одном операторе SQL.Поэтому сначала мне нужен список идентификаторов членов, затем возьмите каждый идентификатор участника и запросите в таблице записей количество записей, где author_id = member_id.
Программно это будет выглядеть примерно так (не полный код obvi):
$mems = select member_id from members_table;
foreach($mems as $cur_mem) {
$entry_count = select count(*) from entries_table where author_id=$cur_mem[member_id];
echo $entry_count;
}
Это для MySQL и использования CMS под названием ExpressionEngine, что является причиной этой головной боли решения,Трудно описать эту проблему, поэтому я могу уточнить любые вопросы.
Спасибо!