【问题标题】:SQL How to join two tables and extract resultSQL如何连接两个表并提取结果
【发布时间】:2018-07-22 10:43:49
【问题描述】:

这是我的机场表:

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

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

【问题讨论】:

  • 你能看看我下面的答案,让我知道它是否有效吗?
  • 现在看..

标签: mysql sql database postgresql


【解决方案1】:

您可以根据您的要求使用 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类型的示意图:

希望这会有所帮助...

【讨论】:

    【解决方案2】:

    你可以这样做:

    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
    

    【讨论】:

      【解决方案3】:

      我不知道您使用哪种语言,但我带来了这个使用 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);
      

      【讨论】:

      【解决方案4】:

      *你好, 这是正确的答案,你想要什么。 但是您的预期结果是错误的,因为您将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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        相关资源
        最近更新 更多