| V2oD2o |
|---|
Начитался, все оказалось просто:
$query="SELECT DISTINCT `model_size`.`model_id`,
`model_size`.`size_width`,
`model_size`.`size_profile`,
`model_size`.`size_radius`,
`model`.`season_id`,
`model`.`model_name` AS MODELNAME,
`vendor`.`vendor_name` AS VENDORNAME
FROM `model_size`
INNER JOIN `model` ON `model`.`model_id`=`model_size`.`model_id`
INNER JOIN `vendor` ON `model`.`vendor_id`=`vendor`.`vendor_id`
WHERE `model_size`.`size_width`='".$params[0]."'
AND `model_size`.`size_profile`='".$params[1]."'
AND `model_size`.`size_radius`='".str_replace("R", "", $params[2])."' ".$type."
GROUP BY VENDORNAME";
з.ы. все логично, что ничего не сортировалось) |
Это - пять! Нужно сохранить пост и показывать потомкам, как делать точно НЕ НАДО!
Во-первых, если делаешь группировку и поле группировку включено в итоговую выборку, то дистинкт уже как бы лишний, ибо группировка в аккурат все дубли агрегирует до уникального дата-сета.
Во-вторых, хоть синтаксис MySQL и позволяет группировать по одному полю, не помещая остальные поля из SELECT в агрегатные функции или в GROUP BY, но делать все же настоятельно не рекомендуется.
В-третьих, за СОРТИРОВКУ результата запроса отвечает предложение ORDER BY, а не GROUP BY. И если в нынешней выерсии группировка делается посредством sorgt-group-by-метода, то это ни дает никаких гарантий, что в последующих версиях будет также. А то вот решат разработчики заюзать более продуктивный и менее накладный метод hash-group-by - и прощай сортировка в этом случае.