【问题标题】:Join two SQL Queries based on first query answer根据第一个查询答案加入两个 SQL 查询
【发布时间】:2017-09-10 16:27:24
【问题描述】:

我一直在到处寻找,这将是向某人寻求帮助的最佳网站。我必须进行 SQL 查询来检查特定航班的预订总量,然后根据系统应提供的预订数量来选择飞机。第一个查询有效,它找到预订总数,我认为我有选择飞机的案例陈述权,但我找不到物理连接两个查询的方式,我尝试使用统一、内连接和嵌套查询,但似乎找不到预订的座位总数(第一次查询的答案),请帮帮我。

第一个 SQL 查询(查找预订总数)

SELECT count(bookingdetails.FlightID)AS TotalNumberOfSeatsBooked,flightdetails.FlightID
FROM  bookingdetails, bookingdetails AS TEMP,flightdetails
WHERE bookingdetails.BookingID = TEMP.BookingID
AND bookingdetails.FlightID= flightdetails.FlightID
Group BY FlightID;

第二个 SQL 查询(根据预订的数量选择飞机类​​型)

    SELECT CASE chooseaircraft
    WHEN TotalNumberOfSeatsBooked <= 110 THEN 'BA 146-200'
    ELSE'Embraer 170'
    END AS ChoiceOfAircraft
    FROM aircrafttype;

非常感谢大家 在得到一个答案后,我认为将两个查询合并在一起是朝着正确的方向前进,代码现在在子查询中显示座位总数和航班号,但飞机列的选择仍然不显示,但如果您运行通过它自己查询我知道我快要得到这个了,我将不胜感激任何有助于在 SQL 中变得更好的帮助,我现在拥有的代码是:

SELECT count(bookingdetails.FlightID)AS TotalNumberOfSeatsBooked,flightdetails.FlightID
FROM  bookingdetails, bookingdetails AS TEMP,flightdetails
WHERE  bookingdetails.BookingID = TEMP.BookingID
AND bookingdetails.FlightID= flightdetails.FlightID
AND bookingdetails.FlightID= flightdetails.FlightID IN(
SELECT CASE WHEN count(bookingdetails.FlightID) <= 110 THEN 'BA 146-200'
ELSE'Embraer 170' 
END AS ChoiceOfAircraft
FROM bookingdetails,flightdetails)
Group BY FlightID;

【问题讨论】:

    标签: mysql sql database join subquery


    【解决方案1】:

    您可以在CASE 语句中使用相同的表达式count(bookingdetails.FlightID)(或)将您的第一个查询包装在子查询中并访问外部查询中的列。那是

    CASE WHEN count(bookingdetails.FlightID) <= 110 THEN 'BA 146-200'
    ELSE'Embraer 170'
    END AS ChoiceOfAircraft
    

    【讨论】:

    • 谢谢老兄知道我在加入查询时哪里错了,我已经更新了上面的代码,如果它适用于我的学位项目会很棒:)
    猜你喜欢
    • 2018-03-20
    • 2018-07-02
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多