我有一张桌子
program(p_id(pk), program_name)
和其他三个表:
graduate_survey(id(pk),PO1_avg,PO2_avg,program_name,session)
,
alumni_survey(id(pk),PO1_avg,PO2_avg,program_name,session),
faculty_survey(id(pk),PO1_avg,PO2_avg,program_name,session)
...
我必须将三个表与程序表链接起来......如何在MySQL中链接这些表? graduate_survey, alumni_survey
,faculty_survey是为某些特定程序计算的一些表单...如果在表单graduate_survey
,alumni_survey
,faculty_survey
中没有用于输入program_name的文本框,但如果我在数据库表中创建了列名'program_name',我可以通过引用program
表来输入program_name吗?是否会有任何连接查询?
答案 0 :(得分:1)
在其他表中使用程序ID作为外键,如下所示:
program(p_id(pk), program_name)
graduate_survey(id(pk),PO1_avg,PO2_avg,p_id(fk),session),
alumni_survey(id(pk),PO1_avg,PO2_avg,p_id(fk),session),
faculty_survey(id(pk),PO1_avg,PO2_avg,p_id(fk),session)
为了FK约束,你真的不需要程序名称,但是在某些时候它可能仍然很好。
这样您就可以根据p_id轻松加入,例如:
"SELECT * FROM program INNER JOIN graduate_survey ON program.p_id=graduate_survey.p_id WHERE <your condition here>"
希望这有帮助。