Je travaille sur un projet de devoirs et je suis censé effectuer une requête de base de données qui trouve les vols soit par le nom de la ville, soit par le code de l'aéroport, mais la flights
table ne contient que les codes d'aéroport donc si je veux rechercher par ville, je dois rejoindre sur la airports
table.
Le tableau des aéroports comprend les colonnes suivantes: code, city
Le tableau des vols comprend les colonnes suivantes: airline, flt_no, fairport, tairport, depart, arrive, fare
Les colonnes fairport
et tairport
sont les codes d'aéroport de départ et d' arrivée.
Les colonnes depart
et arrive
sont les dates de départ et d'arrivée.
Je suis venu avec une requête qui joint d'abord les vols sur la fairport
colonne et la airports.code
colonne. Pour que je corresponde au, tairport
je dois effectuer une autre jointure sur les matchs précédents 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 bons résultats et cela suffira pour les devoirs, mais je me demande si je peux JOIN
sur plusieurs colonnes? Comment pourrais-je construire la WHERE
clause pour qu'elle corresponde au départ et à la ville / code de destination?
Ci-dessous, une "pseudo-requête" sur ce que je veux réaliser, mais je ne parviens pas à obtenir la syntaxe correctement et je ne sais pas comment représenter le airports
tableau des départs et des 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')
Mettre à jour
J'ai également trouvé que cette représentation visuelle des instructions SQL Join était très utile en tant que guide général sur la construction d'instructions SQL!