-1

3 つのテーブルがあり、1 つはスタディ用で、もう 1 つは Travel と Country.Study です。 Study テーブルには が含まれており、としてStudyID,StartDate,EndDate,CountryID設定されています。StudyIDprimary key

TravelテーブルにはTravelID,StudyID,CountryID,TravelStartDate,TravelEndDateTravelIDas Primary keyStudyIDasが含まれていForeign keyます。

Country表には が含まCountryID,CountryCode,CountryName, CountryIDれていprimary keyます。

みたいになりCountryNameたい"CountryCode+' - '+CountryName as CountryName".

次のクエリがあります。

SELECT
            Study.CountryID
                       ,Travel.CountryID
                       ,StartDate   
                       ,EndDate
                       ,TravelStartDate,TravelEndDate,
               , CountryCode+' - '+CountryName as CountryName,              

                      FROM dbo.Study left join  dbo.Countries
                      on 
                      Study.CountryID=Countries.CountryID
                     left join Travel 
                      on 
                     Travel.StudyID=Study.StudyID

CountryNameforTravelとを表示したいStudy。旅行用と留学用に 1 つの国を表示するにはどうすればよいですか?

4

2 に答える 2

0

3 つのテーブルすべてを互いに結合しているため、常に同じになります。この結果を求めていると思います。これを試すことができます:

SELECT A.CountryID ,B.TravelID,A.StartDate ,A.EndDate ,B.StartDate ,B.EndDate ,C.CountryCode + ' - ' + C.CountryName AS CountryName
研究Aから
        INNER JOIN TRAVEL B ON A.StudyID = B.StudyID
        LEFT OUTER JOIN Country C ON A.CountryID = C.CountryID
于 2013-06-05T06:17:05.733 に答える