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有所不同,但输出中不会显示差异。

您可以通过从结果中删除这些列来验证这一点。

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 回答