我有兩個表,"預訂 "和 "城市"。CityName欄位是城市表的主鍵,我已經使用它作為外鍵的兩個列 "SourceCity "和 "DestinationCity "在預訂表。我想創建一個存盤程序,選擇所有現有的資料從Booking表創建一個視圖串列,為此我寫了以下內容。
SELECT [dbo].[Booking].[BookingID],
[dbo].[Booking].[CustomerName]。
[dbo].[City].[CityName]。
[dbo].[城市].[城市名稱]。
[dbo].[Booking].[StartingDate]。
[dbo].[Booking].[EndingDate]。
[dbo].[Car].[LicPlateNumber],
[dbo].[Driver].[DriverName]。
[dbo].[Booking].[AdvanceTaken]。
[dbo].[Booking].[PendingPayment]。
[dbo].[Booking].[TotalRent]。
[dbo].[Booking].[BookingDate]。
[dbo].[Booking].[IDProof]。
FROM [dbo].[Booking].
**LEFT OUTER JOIN【dbo】.[City]
ON [dbo].[Booking].[SourceCity] = [dbo].[City].[CityName]
AND [dbo].[Booking].[DestinationCity] = [dbo].[City].[CityName]**
LEFT OUTER JOIN [dbo].
ON [dbo].[Driver].[DriverID] = [dbo].[Booking].[DriverAllotted]
LEFT OUTER JOIN [dbo].[Car]
ON [dbo].[Car].[CarID] = [dbo].[Booking].[CarAllotted]
ORDER BY [dbo].[Booking].[BookingID]
我不確定是否可以做到以下幾點
LEFT OUTER JOIN [dbo].[City]
ON [dbo].[Booking].[SourceCity] = [dbo].[City].[CityName]
AND [dbo].[Booking].[DestinationCity] = [dbo].[City][CityName]
uj5u.com熱心網友回復:
我猜你需要一個不同的JOIN
FROM [dbo]. [Booking] as booking
LEFT OUTER JOIN [dbo].[City] as source_city
ON booking.[SourceCity] = source_city.[CityName]
LEFT OUTER JOIN [dbo]. [City] as destination_city
ON booking.[DestinationCity] = destination_city.[CityName] 。
....
uj5u.com熱心網友回復:
是的,這是有可能的,你只需要使用一個不同的表alias。除了兩次參考同一個表之外,表的別名還可以使你的代碼看起來更加簡潔,例如:
SELECT b.CustomerName,
sc.CityName AS SourceCity,
dc.CityName AS DestinationCity,
b.起始日期。
b.結束日期。
c.LicensePlateNumber,
d.司機姓名。
b.AdvanceTaken,
b.PendingPayment,
b.總租金。
b.預訂日期。
b.IDProof
FROM dbo.Booking AS b
LEFT OUTER JOIN dbo.City AS sc
ON sc.CityName= b.SourceCity
LEFT OUTER JOIN dbo.City AS dc --這里有不同的別名。
ON dc.CityName = b.DestinationCity
LEFT OUTER JOIN dbo.Driver as d
ON d.DriverID = b.DriverAllotted
LEFT OUTER JOIN dbo.Car as c
ON c.CarID = b.CarAllotted
ORDER BY
b.BookingID。
我理解cleaner有些主觀,但如果有人發現這比你原來的查詢更難讀,我會感到驚訝
。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314807.html
標籤:
上一篇:排除已經簽到的學生的學生ID
下一篇:用Pandas決議一個表格
