Je suis en train de travailler sur un projet et je suis censé effectuer une requête de base de données qui trouve des vols, soit par le nom de la ville ou le code de l'aéroport, mais l' flights
tableau ne contient que de l'aéroport de codes donc, si je veux rechercher par ville-je me joindre sur l' airports
table.
Les aéroports de table comporte les colonnes suivantes: code, city
Le tableau des vols comporte les colonnes suivantes: airline, flt_no, fairport, tairport, depart, arrive, fare
Les colonnes fairport
et tairport
sont le de et pour l'aéroport de codes.
Les colonnes depart
et arrive
sont des dates de départ et d'arrivée.
Je suis venu avec une question, qui rejoint tout d'abord les vols fairport
colonne et l' airports.code
colonne. Dans l'ordre pour moi de correspondre à l' tairport
- je effectuer une autre jointure sur les précédents matches de la première jointure.
SELECT airline, flt_no, fairport, tairport, depart, arrive, fare
FROM (SELECT * FROM flights
INNER JOIN airports
ON flights.fairport = airports.code
WHERE (airports.code = '?' OR airports.city='?')) AS matches
INNER JOIN airports
ON matches.tairport = airports.code
WHERE (airports.code = '?' OR airports.city = '?')
Ma requête renvoie les résultats appropriés et il suffira que le but des devoirs, mais je me demande si je peux l' JOIN
sur plusieurs colonnes? Comment pourrais-je construire l' WHERE
clause de sorte qu'il corresponde au départ et à destination de la ville/code?
Ci-dessous est un "pseudo-query" sur ce que je veux atteindre, mais je ne peux pas obtenir la syntaxe correctement et je ne sais pas comment représenter l' airports
tableau pour les départs et les destinations:
SELECT * FROM flights
INNER JOIN airports
ON flights.fairport = airports.code AND flights.tairport = airports.code
WHERE (airports.code = 'departureCode' OR airports.city= 'departureCity')
AND (airports.code = 'destinationCode' OR airports.city = 'destinationCity')
Mise à jour
J'ai aussi trouvé cette représentation visuelle de Jointure SQL consolidés être très utile comme un guide général sur la façon de construire les instructions SQL!