SQL如何从多个字段中选择不同的值

时间:2015-03-13 12:10:27

标签: sql ms-access select field distinct

在教师资料库中,每位导师最多可以教授3个科目,因此我创建了3个字段 - Subject1Subject2& 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上。最后,组合框有两个化学'

我花了将近一天的时间才弄明白这一点,但是有用,部分原因在于我的低级编程技巧和缺乏经验。希望有人可以帮助我,提前谢谢!

1 个答案:

答案 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运算符删除重复项。