【发布时间】:2016-11-05 20:00:48
【问题描述】:
我有 2 个表(学生班和用户)
表学生班级
columns (id, class_name, user_schoolid_faculty, user_schoolid_student)
表用户
columns (id, firstname, lastname, schoolid, position)
user_schoolid_faculty is a foreign key from schoolid
user_schoolid_student is a foreign key from schoolid
我的第一个查询是
SELECT * FROM studentclass WHERE class_name = '$class_name'
我想用schoolid查看用户名和姓的数据
SELECT studentclass.class_name, user.firstname, user.lastname
FROM studentclass
INNER JOIN user
ON studentclass.user_schoolid_faculty = user.schoolid
WHERE user.position = 'Faculty'
LEFT JOIN user
ON studentclass.user_schoolid_student = user.schoolid
WHERE user.position = 'Student'
这会引发错误,而不是唯一的表/别名“用户”
【问题讨论】:
-
为什么不使用别名? Aliasses 减少了查询的复杂性。
-
SELECT a.class_name, b.firstname, b.lastname FROM studentclass as a INNER JOIN [user] as b ON b.user_schoolid_faculty = a.schoolid WHERE a.position = 'Faculty' LEFT JOIN user ON b.user_schoolid_student = a.schoolid WHERE a.position = 'Student'
标签: php mysql sql-server join