我正在构建一个Windows窗体C#app。我使用oleDb将访问数据库链接到我的应用程序。问题是,我的访问数据库有两个表(学生,courseCodes)和一个"学生" table(courseName)链接到" courseCode" table(" courseCode"表包含课程代码,例如课程代码1是静态的,我在"学生"表中使用代码1来显示静态)现在当我想选择包含的列时静态使用
"SELECT DISTINCT courseName FROM students";
我得到了" 1"相反" Statics"有什么方法可以检索" Statics"相反" 1"?
答案 0 :(得分:4)
我会说你的命名惯例具有误导性和混乱性。该列应该是courseIndex,而不是courseName。
当然可以加入(没有双关语)。此查询将返回给定学生已注册的不同课程名称。
select distinct courseCode.courseName
from student
join courseCode
on student.courseId = courseCode.id
where student.id = ?
请调整您的架构详细信息。
我个人认为这是一个糟糕的设计。学生可以注册许多课程,课程可以有很多学生。这是一种多对多的关系。你需要一个联接表;听起来你在这里只有一对外关键的一对多关系。