# 1054 - Unknown column in the "on" section

I get this error: # 1054 - Unknown column "examresults.userid" in the "on" section

I have seen other posts about this, but I can't figure out how to figure it out. I don’t think that I mean something is wrong ...

SELECT examinationresults.id AS id, examinationresults.examid AS examid, examination.tag AS examtag, examination.title AS examtitle, examinationresults.revision AS revision, examination.medicalspecialtyid AS medicalspecialtyid, medicalspecialties.title AS medicalspecialtytitle, examination.institutionid AS institutionid, institutions.title AS institutiontitle, examinationresults.grade AS grade, examinationresults.points AS points, examinationresults.pointsof AS pointsof, examinationresults.datebegan AS datebegan, examinationresults.datefinished AS datefinished, examinationresults.totaltime AS totaltime, examinationresults.finished AS finished, examinationresults.graded AS graded, users.username AS username, users.firstname AS firstname, users.middlename AS middlename, users.lastname AS lastname FROM examinationresults, examination INNER JOIN medicalspecialties ON examination.medicalspecialtyid=medicalspecialties.id INNER JOIN institutions ON examination.institutionid=institutions.id INNER JOIN users ON examinationresults.userid=users.id WHERE examination.examid=examinationresults.examid AND examination.revision=examinationresults.revision AND examinationresults.userid='1' ORDER BY examinationresults.datefinished ASC; 
+6
source share
2 answers

You have

 FROM examinationresults, examination INNER JOIN medicalspecialties /*....*/ 

Do not mix ANSI 89 and ANSI 92 combining styles.

Use the INNER JOIN for examinationresults and examination too.

 FROM examinationresults INNER JOIN examination ON examination.examid = examinationresults.examid AND examination.revision = examinationresults.revision INNER JOIN medicalspecialties ON examination.medicalspecialtyid = medicalspecialties.id INNER JOIN institutions ON examination.institutionid = institutions.id INNER JOIN users ON examinationresults.userid = users.id WHERE examinationresults.userid = '1' 
+6
source

You forget to use the INNER JOIN syntax for examinationresults and examination . Try the following:

 SELECT examinationresults.id AS id, examinationresults.examid AS examid, examination.tag AS examtag, examination.title AS examtitle, examinationresults.revision AS revision, examination.medicalspecialtyid AS medicalspecialtyid, medicalspecialties.title AS medicalspecialtytitle, examination.institutionid AS institutionid, institutions.title AS institutiontitle, examinationresults.grade AS grade, examinationresults.points AS points, examinationresults.pointsof AS pointsof, examinationresults.datebegan AS datebegan, examinationresults.datefinished AS datefinished, examinationresults.totaltime AS totaltime, examinationresults.finished AS finished, examinationresults.graded AS graded, users.username AS username, users.firstname AS firstname, users.middlename AS middlename, users.lastname AS lastname FROM examinationresults INNER JOIN examination ON examination.examid = examinationresults.examid AND examination.revision = examinationresults.revision INNER JOIN medicalspecialties ON examination.medicalspecialtyid = medicalspecialties.id INNER JOIN institutions ON examination.institutionid = institutions.id INNER JOIN users ON examinationresults.userid = users.id WHERE examinationresults.userid = '1' 

On a side note:

you can check

Bad Kicking Habits: Using Old-Style JOINs

from Aaron Bertrand for reference.
+2
source

Source: https://habr.com/ru/post/958515/


All Articles