группа mysql объединяется внутри, в то время как


У меня есть эта дата таблицы пассажиров:

enter image description here

Это означает, что в бронировании 000004 есть два маршрута, которые являются маршрутом 0000010 (AAC Hangar - Anvaya Cove) и 0000011 (Anvaya Cove - AAC Hangar), и в каждом маршруте есть два пассажира (0000007 (taiga) и 0000011 riyuuji являются пассажирами 0000010 AAC Hangar - Anvaya Cove while0000008 минориand0000012 амиare passengers of0000011 Ангар Anvaya Cove - AAC).

Я пытаюсь объединить их с помощью group_concat, но я могу сделать только так:

    $a=mysql_query("select group_concat(pass_name separator ', ') as 'pass' from passengers where reservno = '0000004' order by id asc") or die(mysql_error());
    $b=mysql_fetch_array($a);
    $c=$b['pass']; 

С результатом: taiga, minori, riyuuji, ami.

Но я хочу этого чтобы выглядеть так: taiga, riyuuji / minori, ami

Возможно ли это с помощью group_concat? Я знаю, что это будет включать операторы while, но на данный момент я все еще не могу получить желаемый результат. Пожалуйста, помогите.

Author: xjshiya, 2013-03-21

1 answers

Вам нужно использовать GROUP BY предложение

select group_concat(pass_name separator ', ') as 'pass' 
from passengers 
where reservno = '0000004' 
GROUP BY reservno, id
order by id asc

ОБНОВЛЕНИЕ 1

SELECT  group_concat(`pass` separator ' / ') `pass` 
FROM    ( 
            select group_concat(pass_name separator ', ') as 'pass' 
            from passengers 
            where reservno = '0000004' 
            GROUP BY reservno, id order by id asc 
        ) s
 2
Author: John Woo, 2013-03-21 06:57:07