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 flights
Tabelle enthält jedoch nur die Flughafencodes. Wenn ich also nach Stadt suchen möchte, muss ich dies tun mach mit auf dem airports
Tisch.
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 fairport
und tairport
sind die Codes von und nach Flughafen.
Die Spalten depart
und arrive
sind Datum der Abreise und Ankunft.
Ich habe eine Abfrage erstellt, die zuerst die Flüge in der fairport
Spalte und in der airports.code
Spalte verbindet. Damit ich mit dem übereinstimmen kann, muss tairport
ich 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 JOIN
mehrere Spalten bearbeiten kann. Wie würde ich die WHERE
Klausel 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 airports
Tabelle 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!