这个问题可能已经被问过了,但我似乎找不到我的答案,所以这里是:
我从JOIN
两个表中选择 10 个字段。结果是大约 1186 行数据。ClassId
在这些行中,除了一个唯一字段 ( )之外,有几行在所有意图和目的上都是重复的。我需要这个领域,但它让我无法获得以及我定义为“独特”的东西。例如,仅查询Code
、TeacherDescrip
和Term
会产生 1120 条记录。
我希望运行相同的查询,但添加一个WHERE
带有子查询的子句,该子查询搜索一组更窄的字段,准确地说是上面列出的三个字段,排除了导致我的“重复”的唯一字段。当然,我收到的错误如下:
“当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。”
当我尝试使用EXISTS
而不是ClassScedule.Code IN
我仍然得到了完整的 1186。
这是我的查询:
SELECT DISTINCT ClassId
,Code
,Section
,Course
,Students
,ClassStart
,TeacherDescrip
,AdTeacherID
,email
,Term
,Campus
FROM ClassScedule
JOIN staff ON staff.StaffID = ClassScedule.AdTeacherID
WHERE ClassStart BETWEEN '2012-03-01' AND '2012-03-30'
AND ClassScedule.Code IN
(SELECT DISTINCT ClassScedule.Code, TeacherDescrip, Termcode
FROM ClassScedule
WHERE ClassStart BETWEEN '2012-03-01' AND '2012-03-30')
AND TeacherDescrip IS NOT NULL
ORDER BY Instructor