是否可以在没有外键的情况下连接表? 例如
tbl学生 栏目:
- ID
- 名字
- 姓氏
- 中间名
tbl等级 社区:
- ID
- 测验
- 项目
- 考试
最终成绩表 栏目:
名字
姓氏
期末成绩
搜索id可以查看期末成绩吗?
最佳答案
tblStudent
中的 id 没有意义,因为您没有在其他表中引用它。更改您的表结构以包含此 StudentId
,而不是 First Name
和 Last Name
。
例如:
tblGrade
列:
- 成绩 ID
- 学生ID
- 测验
- 项目
- 考试
tbl最终成绩
- 最终成绩 ID
- 学生ID
- 期末成绩
然后你可以这样做:
SELECT ID, FirstName, LAstName, Quiz, Project, Exam, FinalGrade
FROM tblStudent
INNER JOIN tblGrade ON tblGrade.StudentId = tblStudent.StudentId
INNER JOIN tblFinalGrade ON tblFinalGrade.StudentId = tblStudent.StudentId
这将是一个比加入 FirstName
和 Last Name
更好的结构,以防万一您有 5 个 John Smith
您如何认识自己返回正确的成绩吗?
尽管我稍微反对您的原始设计,但您可以通过运行以下查询来对现有结构执行相同的查询:
SELECT ID, FirstName, LAstName, Quiz, Project, Exam, FinalGrade
FROM tblStudent
INNER JOIN tblFinalGrade ON tblFinalGrade.FirstName = tblStudent.FirstName AND tblFinalGrade.LastName = tblStudent.LastName
WHERE tblStudent.ID = 1
关于mysql - 没有外键的连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17291733/