$string = "";
while ($row = mysql_fetch_array($result)) {
$string .= $name . ', ';
}
echo substr($string, 0, strlen($string) - 2);
Group By X
означает, что помещает всех с одинаковым значением X в одну группу .
Группировать по X, Y
означает поместить всех с одинаковыми значениями для X и Y в одну группу .
Чтобы проиллюстрировать пример, допустим, у нас есть следующая таблица, касающаяся того, кто посещает какой предмет в университете:
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
Когда вы используете группу по
только в столбце предмета; скажем:
select Subject, Count(*)
from Subject_Selection
group by Subject
Вы получите что-то вроде:
Subject Count
------------------------------
ITB001 5
MKB114 2
... потому что есть 5 записей для ITB001 и 2 для MKB114
Если бы мы сгруппировали по
двум столбцам:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
мы получили бы следующее:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Это потому, что, когда мы группируем по двум столбцам, он говорит «Сгруппируйте их так, чтобы все те, у кого одинаковый предмет и семестр находились в одной группе, а затем вычислите все агрегатные функции (Счетчик, Сумма, Среднее и т. д.) для каждой из этих групп ». В этом примере это демонстрируется тем фактом, что, если мы посчитаем их, есть три человек, которые делают ITB001 в семестре 1, и двое делают это во втором семестре. люди, занимающиеся MKB114, находятся в семестре 1, поэтому нет строки для семестра 2 (данные не попадают в группу «MKB114, Semester 2»)
Надеюсь, это имеет смысл.