0

我有一个用于预订的 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
4

1 回答 1

0

如果没有数据透视表,您将无法做到这一点。在大多数情况下,它的列数到行数是固定的。

这个有一个程序可以自动完成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 
于 2013-11-14T18:57:51.553 回答