SQLでデータを取得する際に問題が発生します。 1つのテーブルソースまたはプライマリキーを持つが、2つの異なる外部キーを持つ方法。SQLは正確なデータを取得できません
This is the ERD This is the result but when i put the Departure it will be vice versa
SQLでデータを取得する際に問題が発生します。 1つのテーブルソースまたはプライマリキーを持つが、2つの異なる外部キーを持つ方法。SQLは正確なデータを取得できません
This is the ERD This is the result but when i put the Departure it will be vice versa
2回使用されるテーブルにテーブルエイリアス名を使用し、2回使用する必要があります。
SELECT Routes.ID, DEP.IATACode, ARR.IATACode
FROM dbo.Routes
INNER JOIN dbo.Airports AS DEP ON DEP.ID = Routes.DepartureAirportID
INNER JOIN dbo.Airports AS ARR ON ARR.ID = Routes.ArrivalAirportID
一度定義したクエリでは、エイリアスはどこでも使用できます。ここでhere for more on using an alias
スケジュール表にそれを適用してくれてありがとう、ありがとう!メリークリスマス –
私が正しくあなたの問題を理解していた場合、あなたが参加し、同じから「出発」と「到着」の両方の値を取得しようとしているようです。これを有効にするには、「出発」と「到着」のそれぞれについて、ルートから空港への2つの別々の結合を必要とします(それに応じて別名を付けます)。 「空港」の2つのインスタンスはあなたが選択した投影に必要なものを行うことができますので、それに応じてエイリアスする必要性を必要と合流すること
select date,
time,
ArrivalAirport.IATACode as Departure,
DepartureAirport.IATACode as Arrival,
FlightNumber,
Aircrafts.Name,
EconomyPrice,
Schedules.ID
from Schedules
inner join [Routes] on Schedules.RouteID = [Routes].ID
inner join Aircrafts on Schedules.AircraftID = Aircrafts.ID
inner join Airports as ArrivalAirport on ArrivalAirport.ID = [Routes].ArrivalAirportID
inner join Airports as DepartureAirport on DepartureAirport.ID = [Routes].DepartureAirportID
注意。
をクリックしてください。すべての列の参照には、テーブル名またはテーブルエイリアス(エイリアスが定義されている場合)があります。 –
@ PEBKAC「マルチパート識別子 'Airports.ID' "見つかった" –
@Christian Lumugdan ...修正された結合。もう一回やってみよう。 – PEBKAC
を参照してください、私はあなたが探していると思うものです:
SELECT
Schedules.Date,
Schedules.Time,
DepartureAirport.IATACode AS Departure,
ArrivalAirport.IATACode AS Arrival,
Schedules.FlightNumber,
Aircrafts.Name,
Schedules.EconomyPrice,
Schedules.ID
FROM
Schedules
INNER JOIN Aircrafts ON Schedules.AircraftID = Aircrafts.ID
INNER JOIN Routes ON Schedules.RouteID = Routes.ID
INNER JOIN Airports AS DepartureAirport
ON Routes.DepartureAirportID = DepartureAirport.ID
INNER JOIN Airports AS ArrivalAirport
ON Routes.ArrivalAirportID = DepartureAirport.ID
事は2を使用すると、2つの異なる空港を持つことができますので、空港のテーブルに参加し分離することです。さもなければ、非常に短い飛行と非常に不満を感じる乗客があります。
私はこれを試します –
データの結果はありません。 –
データの検索結果はありません。 –
あなたが何を求めているかは完全には分かりません。あなたの質問を編集して、画面のキャプチャからクエリと一緒にサンプル入力、出力を表示してください。 –
質問/改善方法の詳細については、このリンク(https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)をご確認ください。あなたの質問 – TheGameiswar
好きなだけ多くのジョインをクエリに含めることができます。 3つのテーブルのデータが必要な場合は、少なくとも2つの結合が必要です。ジョインに関する適切な調査を行い、それでもヘルプが必要な場合は、問題の完全かつ明確な説明を提供してください。 – jmcilhinney