2013-11-14 2 views
0

У меня есть таблица MySQL для заказаПолучить значение столбцов MySQL грести

Bookingid Customer 

    1   Steve 
    2   John 

и другую таблица для пассажиров

Bookingid Passenger 

    1  Steve 
    1  Gary 
    1  Tom 
    2  John 
    2  Chris 
    2  Thomas 

Что такое лучший запрос для получения bookingid из первой таблицы и пассажиров от вторая таблица, в одной строке?

Bookingid Passenger1 Passenger2 Passenger3 
    1   Steve  Gary  Tom 
    2   John  Chris  Thomas 
+1

ли число 'PassengerN' фиксированной или переменной? –

+0

@JorgeCampos количество пассажиров варьируется – krish211

+0

Итак, посмотрите мой ответ. Вам нужен PIVOT TABLE. Что, на мой взгляд, больно делать непосредственно над mysql. –

ответ

0

вы не можете сделать это без PIVOT TABLE Wich в большинстве случаев имеет фиксированное количество столбцов в строки.

Это один имеет порядок, чтобы сделать это automatticaly http://www.artfulsoftware.com/infotree/qrytip.php?id=523

Но у вас есть функция на MySql Wich даст вам то, чтобы работать. Вы не увидите Passenger1..PassengerN вы увидите результат, как этот:

1 Steve, Gary, Tom 
2 John, Chris, Thomas 

Если это достаточно хорошо для вас это ваш запрос:

select passengers.Bookingid, group_concat(bookings.Customer) 
    from bookings inner join passengers on (bookings.Bookingid = passengers.Bookingid) 
group by passengers.Bookingid 
Смежные вопросы