Выборка по сгруппированным строкам. HAVING

В предыдущем рецепте, с помощью GROUP BY были сгруппированы строки - группировались пользователи по фамилиям и для каждой группы находился самый большой возраст. Иногда бывает необходимо помимо всего этого, еще и отсортировать полученные группы по какому-нибудь условию. Например, получить группы фамилий, у которых минимальный возраст превышает 18 лет. В таких случаях можно воспользоваться оператором HAVING, он добавляется в SQL-запрос после группировки:
SELECT last_name, min('age') as min_age FROM `tbl_users`
GROUP BY last_name HAVING min_age > 18

Пример:
// предварительно, необходимо реализовать 
// подключение к базе данных
// запрос
// при ошибке остановим скрипт и выведем ошибку 
$query = mysql_query("
SELECT last_name, min('age') as min_age FROM `tbl_users`
GROUP BY last_name HAVING min_age > 18
") or die(mysql_error());
// получение результата запроса 
$result = array();
while($row = mysql_fetch_array($query, MYSQL ASSOC)){ 
$result[] = $row;
}
// вывод результата 
print_r ($result);

Теги:
HAVING
Добавлено: 27 Марта 2018 18:24:45 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...