【发布时间】:2015-03-13 12:10:26
【问题描述】:
在(导师资料的)数据库中,每位导师最多可以教授 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语句将产生逻辑错误。
例如:导师 A 在他的领域 Subject1 的主题是“化学”。而对于导师 B,他在Subject2 领域拥有相同的主题“化学”。最后,组合框有两个“化学”。
我花了将近一天的时间来解决这个问题,但最终还是成功了,部分原因是我的编程技能不佳和缺乏经验。希望有人可以帮助我,在此先感谢!
【问题讨论】:
-
你应该有 3 行,而不是 3 列...
-
理想情况下,您应该有一个单独的主题表。查看联合查询以规范化您的数据。
标签: sql ms-access select field distinct