0

予約用のmysqlテーブルがあります

Bookingid  Customer

  1         Steve
  2         John

乗客用の別のテーブル

Bookingid  Passenger

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

最初のテーブルから bookingid を取得し、2 番目のテーブルから乗客を 1 行で取得するための最適なクエリは何ですか?

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

1 に答える 1

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 
于 2013-11-14T18:57:51.553 に答える