您好,謝謝大家!!!(SQLITE)
我有 3 張桌子:旅行、中途停留、航班。一次旅行有許多航班和許多停留。所有中途停留和航班都通過 PID與旅行相關聯。
我需要回傳已選擇的行程 (Trips.PIsSelected=1) 并且排除存在 FlightNumber 的所有行程。
SELECT t.* FROM Trips AS t
LEFT JOIN Flights AS f ON t.PID = f.PID WHERE
(f.FlightNumber <> 1892 AND t.PIsSelected = 1) GROUP BY f.PID
上面的陳述句只回傳 t.PIsSelected = 1 的所有 Trip... 我可以做相反的事情,下面的陳述句有效(但這不是我想要的。(下))。
SELECT t.* FROM Trips AS t
LEFT JOIN Flights AS f ON t.PID = f.PID WHERE
(f.FlightNumber = 1892 AND t.PIsSelected = 1) GROUP BY f.PID
上述陳述句有效,并回傳 The Trip Has PIsSelected=1 和 FlightNumber 為 1892 的結果...我需要回傳 FlightNumber 不是 1892 的所有結果。謝謝。
根據 StackOverflow 的建議,我將 2 個 txt 檔案上傳到 Drive(Trips.txt 和 Flights.txt)列資料,以 2 個空格分隔。

航班

中途停留

uj5u.com熱心網友回復:
沒有一些示例資料很難弄清楚,但是如果您的第二個查詢有效,也許可以使用它?例如
SELECT * from Trips where PID NOT IN (
SELECT t.PID FROM Trips AS t
LEFT JOIN Flights AS f ON t.PID = f.PID WHERE
(f.FlightNumber = 1892 AND t.PIsSelected = 1) GROUP BY f.PID
)tmp and t.PIsSelected = 1
uj5u.com熱心網友回復:
傳奇RB找到了答案。謝謝瑞克!!!
SELECT t.* FROM Trips AS t
WHERE t.PIsSelected = 1 AND NOT EXISTS
(SELECT 1 FROM Flights f WHERE f.PID = t.PID AND f.FlightNumber = 1892)
也感謝你 Emmanuel H. 的主要問題......非常感謝......
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/446894.html
下一篇:獲取“變數可能未初始化錯誤”
