SQL如何联接两个表并提取结果

时间:2018-07-22 10:43:50

标签: mysql sql database postgresql

这是我的机场桌子:

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

如何获得预期的结果。

4 个答案:

答案 0 :(得分:0)

您可以这样做:

Array
(
    [CreationDate] => 2011-08-09
    [OrderNumber] => 123123
    [OrderDate] => 2011-08-09
    [InvoiceNumber] => XXAXXA
)

答案 1 :(得分:0)

我不知道您使用哪种语言,但我带了一个使用sql语言的示例,它可能适用于某些其他语言或所有其他语言:-

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);

答案 2 :(得分:0)

您可以根据您的要求使用INNER JOIN或LEFT JOIN,如下图所示。另一方面,您可以按照以下方法来连接多个表:

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中的JOIN类型的图:

enter image description here

希望这对您有帮助...

答案 3 :(得分:0)

*你好, 这是正确的答案,就是您想要的。 但是您的精确结果是错误的,因为您将equipmnet id 2放在了表调度中。那就是为什么我的答案看起来与众不同*

正确的代码

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

enter image description here