[英]join two mysql queries to order the first query by the result of the second
[英]Join two SQL Queries based on first query answer
我一直到處尋找,這將是向某人尋求幫助的最佳網站。 我必須進行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;
您可以在CASE
語句中使用相同的表達式count(bookingdetails.FlightID)
(或)將第一個查詢包裝在子查詢中,並訪問外部查詢中的列。 那是
CASE WHEN count(bookingdetails.FlightID) <= 110 THEN 'BA 146-200'
ELSE'Embraer 170'
END AS ChoiceOfAircraft
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.