Это задача: у меня есть таблица db с именем «reports», один из столбцов в этой таблице - «submitted_by». В этом столбце указано имя пользователя, отправившего отчет.Объедините эти два MySQL-запроса в один
Теперь мне нужно отобразить список имен пользователей, упорядоченных по количеству опубликованных отчетов. Так что-то вроде этого должно получиться:
User | Доклады
Mark | 25
John | 18
Mary | 7
т.д.
Я написал этот PHP/MySQL код, чтобы сделать это, это довольно просто, но мне было интересно, если они могут быть объединены в 1 запрос. Кроме того, это принесет большую пользу с точки зрения эффективности?
$users=array();
$result=mysql_query("select id,submitted_by from reports group by submitted_by");
while($row=mysql_fetch_array($result)){
$result1=mysql_query("select id,submitted_by from reports where submitted_by='$row[submitted_by]' ");
$users[$row[submitted_by]]=mysql_num_rows($result1);
}
arsort($users);
А потом просто эхо каждый элемент из $users
.
Вам не нужно два запроса, просто добавьте 'COUNT (*) AS«number_of_reports'' к вашему SELECT исходного запроса. – Quantastical