Try this query on Wikidata:
SELECT DISTINCT ?aLabel ?is_lowcost ?affiliateLabel ?iata where {
?a wdt:P31/wdt:P279* wd:Q1875615 .
BIND ((EXISTS {?a wdt:P31 wd:Q190915 }) AS ?is_lowcost )
OPTIONAL {?a wdt:P749 ?parent}
OPTIONAL {?a wdt:P361 ?whole}
OPTIONAL {?a wdt:P127 ?owner}
OPTIONAL {?a wdt:P114 ?alliance}
OPTIONAL {?a wdt:P229 ?iata}
BIND ( COALESCE(?alliance, ?parent, ?parent, ?owner) AS ?affiliate)
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
} ORDER BY DESC(?is_lowcost)
The values in the affiliateLabel
column are coalesced from the values of these properties:
Try this query, if you want to get the values of these properties separated.
As to low-coster status, the data is obviously incomplete. For instanse, wd:Q18398469 is definitely a low-coster.