在教师资料库中,每位导师最多可以教授3个科目,因此我创建了3个字段 - Subject1
,Subject2
& Subject3
- 为每位导师。在我的情况下,我想检索3个字段中的每个特定主题,并将它们添加到我的程序中的组合框中以进行标准搜索功能。
最初,我将以下代码用于3个不同的字段:
Dim sqlSubjectComboBox As String = "SELECT DISTINCT [TutorSubject1] FROM tblTutor"
Dim cmdSubjectComboBox As New OleDbCommand(sqlSubjectComboBox, myConnection)
dr = cmdSubjectComboBox.ExecuteReader
While dr.Read()
cbSubject.Items.Add(dr("TutorSubject1").ToString)
End While
但是,我意识到如果同一主题被放置在不同的字段中,这个sql语句会产生逻辑错误。
Ex:导师A的主题是“化学”和“化学”。在他的领域Subject1
。而对于导师B,他有相同的主题'化学'在字段Subject2
上。最后,组合框有两个化学'
我花了将近一天的时间才弄明白这一点,但是有用,部分原因在于我的低级编程技巧和缺乏经验。希望有人可以帮助我,提前谢谢!
答案 0 :(得分:2)
您可以使用UNION运算符获取不同的主题列表。
select TutorSubject1 FROM tblTutor where TutorSubject1 is not null
union
select TutorSubject2 FROM tblTutor where TutorSubject2 is not null
union
select TutorSubject3 FROM tblTutor where TutorSubject3 is not null
这里重要的是UNION运算符删除重复项。