表 tblStudents 列:id、姓名、性别、SchoolName、SchoolId。
表 tblSchool 列:id、名称、位置。
select name,
(select name
from tblStudents as a
where a.SchoolId=id
limit 1)
from tblSchool;
我希望返回 SchoolName 以及第一个注册的学生。 (这就是为什么我使用限制 1。)
tblStudents 中可能存在多个具有相同 SchoolId 的 tblStudents 记录。
由于 where 子句中的 id 列在两个表中都存在,因此查询中使用的 id 属于 tblStudents,而不是 tblSchool。
我无法在 tblSchool 中使用别名。
SELECT s.name AS SchoolName,
(SELECT a.name
FROM tblStudents AS a
WHERE a.SchoolId = s.id
LIMIT 1) AS FirstStudentName
FROM tblSchool AS s;
您不能对 tblSchool 使用别名,但需要确保您的子查询使用来自 tblSchool 的 id,而不是来自 tblStudents 的 id。