Ich arbeite an einem Hausaufgabenprojekt und soll eine Datenbankabfrage durchführen, bei der Flüge entweder anhand des Stadtnamens oder des Flughafencodes gefunden werden. Die flightsTabelle enthält jedoch nur die Flughafencodes. Wenn ich also nach Stadt suchen möchte, muss ich dies tun mach mit auf dem airportsTisch.
Die Flughafentabelle enthält die folgenden Spalten: code, city
Die Flugtabelle enthält die folgenden Spalten: airline, flt_no, fairport, tairport, depart, arrive, fare
Die Spalten fairportund tairportsind die Codes von und nach Flughafen.
Die Spalten departund arrivesind Datum der Abreise und Ankunft.
Ich habe eine Abfrage erstellt, die zuerst die Flüge in der fairportSpalte und in der airports.codeSpalte verbindet. Damit ich mit dem übereinstimmen kann, muss tairportich einen weiteren Join für die vorherigen Matches ab dem ersten Join durchführen.
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 = '?')
Meine Abfrage liefert die richtigen Ergebnisse und reicht für die Hausaufgaben aus. Ich frage mich jedoch, ob ich JOINmehrere Spalten bearbeiten kann. Wie würde ich die WHEREKlausel so konstruieren , dass sie mit der Abfahrt und der Zielstadt / dem Zielcode übereinstimmt?
Unten ist eine "Pseudo-Abfrage" zu dem, was ich erreichen möchte, aber ich kann die Syntax nicht richtig verstehen und ich weiß nicht, wie ich die airportsTabelle für die Abflüge und die Ziele darstellen soll:
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')
Aktualisieren
Ich fand diese visuelle Darstellung von SQL Join-Anweisungen auch sehr hilfreich als allgemeine Anleitung zum Erstellen von SQL-Anweisungen!