SELECT distinct dep.airport_name->>'en' as departure_airport, arr.airport_name->>'en' as arrival_airport
From airports_data as dep
cross join airports_data as arr
-- ON dep.airport_code = arr.airport_code
GROUP BY dep.airport_code, arr.airport_code
HAVING dep.airport_code <> arr.airport_code
-- ORDER BY dep.airport_code, arr.airport_code
EXCEPT
SELECT distinct dep.airport_name->>'en' as departure_airport, arr.airport_name->>'en' as arrival_airport
FROM flights as fl
JOIN airports_data as dep
ON dep.airport_code = fl.departure_airport
JOIN airports_data as arr
ON arr.airport_code = fl.arrival_airport
-- GROUP BY departure_airport, arrival_airport
ORDER BY departure_airport, arrival_airport;
;
select * from query_cost('SELECT distinct dep.airport_name->>''en'' as departure_airport, arr.airport_name->>''en'' as arrival_airport
From airports_data as dep
cross join airports_data as arr
-- ON dep.airport_code = arr.airport_code
GROUP BY dep.airport_code, arr.airport_code
HAVING dep.airport_code <> arr.airport_code
-- ORDER BY dep.airport_code, arr.airport_code
EXCEPT
SELECT distinct dep.airport_name->>''en'' as departure_airport, arr.airport_name->>''en'' as arrival_airport
FROM flights as fl
JOIN airports_data as dep
ON dep.airport_code = fl.departure_airport
JOIN airports_data as arr
ON arr.airport_code = fl.arrival_airport
-- GROUP BY departure_airport, arrival_airport
ORDER BY departure_airport, arrival_airport;');