在 SQL 服务器中加入 3 个具有重复值的表

Join 3 tables with duplicate values in SQL Server

我有 3 table

主题 table 我存储主题及其详细信息的地方

subject_id
subject_code
title
lec_units
lab_units
year_offered
course_offered
sem_offered

已注册 table 我存储学生已注册科目的地方

id
course_code
student_id
subject_code
year_enrolled
school_year

最后,Grades table 我存储每个科目的学生成绩

grade_id
student_id
subject_code
grade

我select打印的等级是这样的:

Select g.subject_code,g.grade,su.title,su.year_offered,su.sem_offered,e.school_year from grades g left join subjects su on g.subject_code= su.subject_code left join enrolled e on g.subject_code = e.subject_code where (g.student_id='" + data_listview.FocusedItem.Text + "' and su.sem_offered = '1st' and e.year_enrolled= '1st')

但是由于在我注册的 table 中,另一个学生也注册了同一科目,所以我得到了重复的行。那么我怎样才能防止有重复的行呢?提前致谢!

试试这个

SELECT
  g.subject_code,
  g.grade,
  su.title,
  su.year_offered,
  su.sem_offered,
  e.school_year
FROM grades g
LEFT JOIN subjects su
  ON g.subject_code = su.subject_code
LEFT JOIN enrolled e
  ON g.subject_code = e.subject_code

  and g.student_id = e.student_id  -- you are missing this to link the student

WHERE (g.student_id = '" + data_listview.FocusedItem.Text + "'
AND su.sem_offered = '1st'
AND e.year_enrolled = '1st')