鑑於Flight
表:由於航班的數據庫,找到最長飛行時間的目的地每個起點城市
我需要找到,每個城市,目的地(S)與最長飛行時間。
我很難與子查詢。
我嘗試:
SELECT DISTINCT origin_city, dest_city, MAX(actual_time)
GROUP BY origin_city
但我知道這是錯誤的。任何指導表示讚賞
鑑於Flight
表:由於航班的數據庫,找到最長飛行時間的目的地每個起點城市
我需要找到,每個城市,目的地(S)與最長飛行時間。
我很難與子查詢。
我嘗試:
SELECT DISTINCT origin_city, dest_city, MAX(actual_time)
GROUP BY origin_city
但我知道這是錯誤的。任何指導表示讚賞
$sql = "SELECT MAX(actual_time) FROM FLIGHTS WHERE origin_city=xxxxx";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo $row["dest_city"];
}
將上面的代碼包裝在一個循環中,因爲你需要每個起源城市的目的地城市。
這並不能提供航班時間最長的目的地城市。 –
感謝您的迴應,但我確定這不是我們在課堂上學習的SQLite。這個解決方案應該用查詢和子查詢來完成。不爲循環 – dev74
這將產生一個起源城市的列表,目的地城市的航班時間最長。
編輯:新增GROUP BY主查詢,ORDER BY /限制子查詢消除重複origin_cities。
SELECT
f.`origin_city`,
f.`origin_state`,
f.`dest_city`,
f.`desc_state`,
f.`actual_time`
FROM (
SELECT
`origin_city`,
`origin_state`,
max(`actual_time`) as `max_time`
FROM `Flights`
GROUP BY `origin_city`,`origin_state`
ORDER BY `max_time` DESC) a
JOIN `Flights` f
ON f.`origin_city` = a.`origin_city`
AND f.`origin_state` = a.`origin_state`
AND f.`actual_time` = a.`max_time`
GROUP BY f.`origin_city`,f.`origin_state`
您的嘗試對於SQLite 3.7.11或更高版本(DISTINCT是多餘的)是正確的。但是對於什麼數據庫你真的想要答案? –