[解決済み] 複数のカラムに対してINNER JOINを行う方法
質問
私は宿題のプロジェクトに取り組んでいて、都市名または空港コードによってフライトを見つけるデータベースクエリを実行することになっています。
flights
テーブルには空港コードしか含まれていないため、都市名で検索する場合は
airports
テーブルを使用します。
airportsテーブルには、以下のカラムがあります。
code, city
フライトテーブルには、以下のカラムがあります。
airline, flt_no, fairport, tairport, depart, arrive, fare
カラムは
fairport
と
tairport
は
から
と
へ
空港コード
コラム
depart
と
arrive
は出発日と到着日です。
このクエリでは、まずフライトを
fairport
カラムと
airports.code
カラムを使用します。 を一致させるために
tairport
最初の結合で一致したものについて、もう1度結合を実行する必要があります。
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 = '?')
私のクエリは適切な結果を返し、宿題の目的には十分ですが、もし私が
JOIN
を複数の列で使用することはできますか?をどのように構築すればよいのでしょうか?
WHERE
節は、出発地と目的地の都市/コードに一致するのでしょうか?
以下は、私が達成したいことについての擬似クエリです。
airports
テーブルの出発地と目的地。
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')
更新情報
また SQL Joinステートメントを視覚的に表現したものです。 になります。 大変 SQL文の組み立て方の一般的なガイドとして役立ちます!
どのように解決するのですか?
同じテーブルで複数回JOINする場合は、結合するテーブルに エイリアス 次の例のように。
SELECT
airline, flt_no, fairport, tairport, depart, arrive, fare
FROM
flights
INNER JOIN
airports from_port ON (from_port.code = flights.fairport)
INNER JOIN
airports to_port ON (to_port.code = flights.tairport)
WHERE
from_port.code = '?' OR to_port.code = '?' OR airports.city='?'
ただし
to_port
と
from_port
は、1番目と2番目のコピーのエイリアスです。
airports
テーブルを作成します。
関連
-
[解決済み】使用されるSELECT文は列の数が異なる(REDUX!)
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PL/SQL SELECTに複数のCOUNT(DISTINCT xxx)を指定すると、予期しない結果になる。
-
[解決済み】SQL Server サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、これは許可されません。
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] トリガーがコンパイルエラーで作成される