sql如何连接两个表并提取结果

nmpmafwu  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(323)

这是我的机场table:

id code airport 
1  MAA  Chennai Airport
2  DEL  Delhi Airport

这是我的设备表:

id type Desc
1  Q400 Q Series
2  B737 B Series

这是我的时间表:

id station equipment
1  1       2
2  2       1

以下是我的预期结果:

id station equipment
1  MAA     B737
2  DEL     Q400

我该怎么做?
这就是我迄今为止所尝试的:

select schedule.id, schedule.station, flight_schedules.equipment
inner join airport where schedule.station = airport.code

我怎样才能得到预期的结果。

uajslkp6

uajslkp61#

你可以做:

SELECT s.id, a.code AS station, e.type AS equipment FROM Schedule s
LEFT JOIN Airport a ON a.id = s.station
LEFT JOIN Equipment e ON e.id = s.equipment
rt4zxlrg

rt4zxlrg2#

您可以根据您的要求使用内部连接或左连接,如下图所示。另一方面,您可以按照此方法连接多个表:

SELECT * FROM    
A INNER JOIN
  B INNER JOIN
    C INNER JOIN
      D INNER JOIN
        E INNER JOIN F
        ON F.eid = E.id
      ON E.did = D.id
    ON D.cid = C.id
  ON C.bid = B.id
ON B.aid = A.id

下面是理解mssql中连接类型的示意图:

希望这有帮助。。。

j1dl9f46

j1dl9f463#

  • 你好,这是正确的答案,你想要什么。但是您的表达式结果是错误的,因为您将equipmnetid2放在了表schedule中。所以我觉得答案不一样*

正确的代码

SELECT Sch.[equipment]
      ,Air.code
      ,Equ.type
  FROM [Test].[dbo].[Scheule] as Sch
  INNER JOIN [Test].[dbo].[Airport] as Air
  ON Air.id = Sch.station 
  INNER JOIN [Test].[dbo].[Equipment] as Equ
  ON Equ.id = Sch.id

在此处输入图像描述

uxhixvfz

uxhixvfz4#

我不知道你用哪种语言,但我举了一个例子 sql 它可能适用于其他一些语言,也可能适用于所有语言them:-

SELECT Schedule.id, Airport.code, Equipment.type
FROM ((Schedule
INNER JOIN Airport ON Schedule.station = Airport.id)
INNER JOIN Shippers ON Schedule.equipment = Equipment.id);

相关问题