SQL语句问题的请教,关于四表关联查询?

students(学生ID,班级ID,学校ID,卡号ID)
classes(班级ID,年级ID,班级名)
schools(学校ID,学校姓名)
grades(年级ID,年级名)
需求:找到卡号=10的学生的姓名,年级,班级,学校
select *
from students
inner join classes on students.classes_id=classes.classes_id
inner join grades on classes.grades_id=grades.grades_id
where length(students_card_id)=10
先查询三表的 这个语句都没有执行成功 ,不知道是不是图片说明

students.students_card_id . length()=10

条件查询你为什么还要用个length()包起来...length()是获取字符串长度,可是你需求不是说要查询卡号等于10的吗?条件变成:where students.students_card_id = 10这样子不行吗

select a.学生ID ,b.班级名,c.学校姓名,d.年级名
from students a,
classes b,
schools c,
grades d
where a.班级ID = b.班级ID
and a.学校ID = c.学校ID
and b.年级ID = d.年级ID
and a.卡号ID = 10

图片说明
非常感谢 !

想再请问一下为何我上面那个语句运行不通呢