SQL查询Phpmyadmin没有给出正确的结果有超过3个表与WHERE子句



我有关系数据库,并试图执行以下查询最多3个表。它给了我正确的结果,即248名学生在学院id 910的记录,但当我试图查询超过3个表,它给我19000+结果。

SELECT * 
FROM Student,StudentRegistration,RefStudentType,RefGender,SubjectCategory 
WHERE Student.student_id=StudentRegistration.student_student_id 
AND StudentRegistration.reg_student_type_std_type_id = RefStudentType.std_type_id 
AND Student.student_gender_gender_id = RefGender.gender_id 
AND StudentRegistration.reg_student_subjectCat_sub_cat_id=SubjectCategory.sub_cat_id 
AND Student.student_institute_inst_id=910;

尝试使用JOIN,但相同的19000+记录不正确的结果

SELECT * FROM Student INNER JOIN StudentRegistration ON student_id=student_student_id INNER JOIN RefReligion ON RefReligion.religion_id=Student.student_religion_religion_id INNER JOIN RefStudentType ON RefStudentType.std_type_id=StudentRegistration.reg_student_type_std_type_id WHERE student_institute_inst_id=910;

任何解决方案,查询逻辑错误或一些新的

我认为这是由于一个数据有几个记录。例如,在id = '910'的SubjectCategory表中可能有几条记录

最好使用左/右/内/外连接,而不要使用from tbl1, tbl2

我建议用id一个一个地检查表。

最新更新