我试图找出如何使用此方案中的MySQL去 -如何获得柱之间的匹配数量在两个表中的MySQL
有三个表 - 表的t_student, t_teacher, t_result
结构(基本在它们中的每列)是如下:
t_student:
s_id, s_name, s1, s2, s3
其中S_ID是主键,S_NAME是学生姓名,(S1,S2,S3)是受试者像数学,PHY,化学等。
t_teacher:
t_id, t_name, s1, s2, s3
其中T_ID是主键,t_name是老师的名字,(S1,S2,S3)的科目,如数学,物理层,化学等。
t_result:
r_id, s_name, t_name, count
其中R_ID是主键,S_NAME是学生名称(从学生表),t_name是老师的名字(从老师表)和计数给出数(更详细的介绍了一下)
现在,我想要做的是如下:
有可以是学生和教师表中的任意数量的记录,并且现在不在结果表中。现在,使用mySQL我想扫描学生表的内容,并且对于此表中的每个记录,我想拾取:
s1,然后将该值与(s1,s2,s3)列中的值进行比较表 S2,然后比较在老师表 S3与(S1,S2,S3)列中的值,然后比较值(S1,S2,S3)在老师表列
和获得匹配的数量值和存储数量。如果对于学生表中的第一条记录,s1,s2和s3是“phy”,“chem”和“maths”,并且如果teacher表中的第一条记录是“maths”,则“phy “,”computer“,那么在这种情况下,student.s1与teacher.s2匹配 - 现在count为1,则student.s2与teacher表中的s1,s2,s3匹配,但match为0,因此count保持1;再次将student.s3与教师表中的s1,s2,s3进行匹配,这次它与teacher.s1匹配,因此计数递增到2.因此,在学生表中的第一个记录与教师的第一个记录比较结束时表,我得到count = 2。现在,我会在结果表中插入一行,并附上学生姓名,教师姓名和计算结果。
基本上我想获得学生表和老师表之间的s1,s2,s3匹配的数量,对于学生表中的每一行,然后将其放入结果表中。
我只知道mysql中的基本操作,比如选择插入删除等。我假设这样的操作需要比这更多的东西,比如plsql和存储过程?
仅供参考,我使用的是phpmyadmin,表格存储在那里。我将使用PHP从表中获取结果,并执行这些查询。
请让我知道这个方法。
谢谢!
感谢您关注此事,但我想你误解了我的要求。两个表中的记录都不同,并且来自不同的来源(高层次),并且不是真正的依赖。所以第三张表 - 结果表是非常必要的。可能我没有完全解释事情,但相信我这不是正常化。 我只想知道如何通过将每个学生(s1,s2,s3)与老师(s1,s2,s3)进行匹配来确定COUNT。 再次感谢。 – kallakafar
很有可能,我们都错过了这一点。但它看起来仍然在这里的所有答案基本上是相同的:消除一个重复的组s1,s2,s3,并使用一对多的关系。这确实是正常化。 –
是的..我想我的问题还不够清楚!我想我需要编写程序,然后获得匹配计数,然后输入结果表。现在正在研究这种方法。无论如何,感谢您的帮助:) – kallakafar