簡體   English   中英

內部將2列的兩個表連接到相同的ID

[英]inner join two table of 2 column to the same ID

我開始學習“ sqllite3”,但遇到了一個無法解決的問題。

我有這些桌子

架構圖

我想為每位乘客選擇以下日期:姓名,性別,年齡,機票,票價,始發港和目的港。 但是在原始端口和目標端口中,我想顯示端口名稱而不是數字。 我設法顯示除端口以外的所有數據,我知道我需要使用Alias,但不知道如何使用。 有人可以幫忙嗎?

select Passengers.Passengerid as "PassengerId", Classes.Class_Name as 
"Passenger_Class", Passengers.Name, Passengers.Sex,Passengers.Age, 
Travels.Ticket,Travels.Fare, Ports.Port_ID as "Embarked",Ports.Port_ID as 
"Destination" from Passengers
inner join Travels on Passengers.Passengerid = Travels.Passengerid
inner join Travel_Options on Travels.Travel_ID = Travel_Options.Travel_ID
inner join Ports on Travel_Options.Origin_Port_ID =  Ports.Port_ID
inner join Ports on Travel_Options.Destination_ID =  Ports.Port_ID
inner join Classes on Travel_Options.Class_ID = Classes.Class_ID;

您需要為表使用單獨的別名。 實際上,我會為所有表推薦表別名:

select p.Passengerid, c.Class_Name as Passenger_Class,
       p.Name, p.Sex, p.Age, 
       t.Ticket, t.Fare, po.port_name as Embarked, pd.port_name as  Destination
from Passengers p inner join
     Travels t
     on p.Passengerid = t.Passengerid inner join
     Travel_Options o
     on t.Travel_ID = o.Travel_ID inner join
     Ports po
     on o.Origin_Port_ID = po.Port_ID inner join
     Ports pd
     on o.Destination_ID = pd.Port_ID inner join
     Classes c
     on o.Class_ID = c.Class_ID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM