У меня есть эта прекрасная часть кода, которая копирует разные количества строк, поэтому я могу создать ассоциативный список того, сколько из каждого хорошего гражданина обладает.Оптимизация работы MySQL для получения подсчетов
$citizen_id = 1;
$goods = array();
$goods_result = mysql_query("SELECT id,name FROM goods");
while(($goods_row = mysql_fetch_assoc($goods_result))) {
$good_id = $goods_row['id'];
$query = "SELECT count(*) FROM possessions where citizen_id=$citizen_id and good_id=$good_id";
$possessed_result = mysql_query($query);
$possessed_row = mysql_fetch_row($possessed_result);
if($possessed_row) {
$possessed = $possessed_row[0];
$goods[$goods_row['name']] = $possessed;
}
}
echo json_encode ($goods);
Это работает, но работает слишком медленно. Мне кажется, что должен быть способ заставить MySQL построить таблицу подсчетов и вернуть ее мне в одном запросе, но я понятия не имею, как это выяснить. Любые идеи о том, как сделать эту операцию быстрее?
удивительным. Это именно то, что мне нужно. – Luke