我最近遇到了一个嵌套查询问题,我想分享并需要帮助。
有两张表:Student 和 School。
表 tblStudents 列:id、name、gender、SchoolName、SchoolId。
表 tblSchool 列:id、名称、位置。
现在我的查询是这样的:-
从 tblSchool 选择姓名,(从 tblStudents 中选择姓名,其中 a.SchoolId=id limit 1);
现在这个查询可能看起来很奇怪,但让我告诉我我想找出什么。 我希望返回学校名称以及第一个注册的学生。 (这就是为什么我使用限制 1)
首先从假设开始:
现在,我在查询中遇到的问题是,由于两个表中都存在 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。