2013-05-29 58 views
1

我有以下的數據庫表與SQL Server在SQL SERVER的一列中選擇多行到多行的相關列?

Booking(bookingID,customerName,branchID,RefNumber,...) 

Trip(TripID,vehicleID,...) 

BookingToTripMap(TripID,bookingID) 

Branch(branchID, branchName) 

Vehicle(vehicleID,vehicleNumber) 

存在被保存在(預訂,分公司)和(旅行,汽車)和許多預售之間一對多的關係,旅行之間的一對一的關係表格BookingToTripMap。

現在我想提取,將(在一個單元中的所有車輛數)返回以下

Booking.RefNumber Booking.CustomerName Vehicle.VehicleNumber 

查詢

+1

看到http://stackoverflow.com/questions/12559551/sql-server-equivalent-of-wm-concat-function –

+2

@nikhilthecoder:如何是與車輛表預訂表。我沒有看到任何表 –

+0

任何關係或foregien關鍵你好deepak,對不起,我的錯誤,它是表BookingToTripMap,而不是vehilceID bookingID。 – nikhilthecoder

回答

0

這是您的查詢

SELECT B.RefNumber, B.CustomerName, V.VehicleNumber 
FROM ((Booking AS B INNER JOIN BookingToTripMap AS BT 
    ON B.bookingID = BT.bookingID) INNER JOIN TRIP as T 
    ON T.TripID = BT.TripID) INNER JOIN Vehicle as V 
    ON V.vehicleID = T.vehicleID 

我想補充字段bookingID到表Trip,似乎表​​BookingToTripMap不會爲您的數據庫添加任何值。另外,如果您的車輛號碼是唯一的,則可以將Vehicle表中的主鍵更改爲vehicleNumber,並更改Trip表中的相同列。因此,您可以直接從Trip表中檢索車輛號碼。

我只是猜測,根據給定的信息。

問候,

+0

我假設(Branch,Booking)和(Trip,Vehicle)之間的關係不是一一對應,而是一對多關係。一旦你修好預訂,它只對應一個分支,一旦你修好了一次旅行,也許它只有一輛代理車輛......但是一輛汽車會使許多旅程和分支預訂很多,對吧? – Clon