1

次のストアド プロシージャを実行していますが、Classes テーブルと Dates テーブルの結合があります。ただし、7 つのテスト レコードのうち、結果に 1 つの重複レコードが表示されます。

SELECT DISTINCT dbo.Classes.Title, dbo.Classes.ClassTime, dbo.Classes.Category, 
    dbo.Classes.SubCategory1, dbo.Classes.[Description],dbo.Classes.ContactName, 
    dbo.Classes.ContactPhone, dbo.Classes.Location, dbo.Classes.Room,
    dbo.Dates.StartDate
    FROM dbo.Classes INNER JOIN dbo.Dates ON dbo.Classes.ClassID = dbo.Dates.ClassID
    ORDER BY StartDate DESC 
4

1 に答える 1

2

ほとんどのDate場合、これらの 2 つの行の列の 1 つが多少異なりますが、違いは出力に現れません。

これらの列を結果から削除することで、これを確認できます。

SELECT DISTINCT dbo.Classes.Title
       , dbo.Classes.Category
       , dbo.Classes.SubCategory1
       , dbo.Classes.[Description]
       , dbo.Classes.ContactName
       , dbo.Classes.ContactPhone
       , dbo.Classes.Location
       , dbo.Classes.Room
FROM   dbo.Classes 
       INNER JOIN dbo.Dates ON dbo.Classes.ClassID = dbo.Dates.ClassID

別の注意として、エイリアスを使用してステートメントの読みやすさを向上させることをお勧めします。

SELECT DISTINCT dbo.Classes.Title
       , c.Category
       , c.SubCategory1
       , c.[Description]
       , c.ContactName
       , c.ContactPhone
       , c.Location
       , c.Room
FROM   dbo.Classes AS c
       INNER JOIN dbo.Dates AS d ON c.ClassID = d.ClassID
于 2012-06-24T13:55:42.933 に答える