获取mysql列值到行

时间:2013-11-14 18:47:46

标签: mysql sql

我有一个用于预订的mysql表

Bookingid  Customer

  1         Steve
  2         John

和另一张乘客表

Bookingid  Passenger

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

从第一张桌子和第二张桌子上的乘客一起获得预订的最佳查询是什么?

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

1 个答案:

答案 0 :(得分:0)

如果没有PIVOT TABLE,你就无法做到这一点。在大多数情况下,它有固定数量的列到行。

这个程序有一个自动执行的程序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