2013-11-14 22 views
0

我有預訂讓MySQL列的值來排

Bookingid Customer 

    1   Steve 
    2   John 

一個MySQL表和另一個表爲乘客

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

所以,看看我給出的答案。你需要一個樞軸表。在我看來,這是直接在mysql上做的痛苦。 –

回答

0

不容你在大多數情況下,這樣做沒有PIVOT TABLE至極有固定列數的行。

這其中有一個過程來做到這一點automatticaly http://www.artfulsoftware.com/infotree/qrytip.php?id=523

但是你必須MySql上至極的功能會給你一些幫助。你不會看到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