嵌套查询问题MySql [请帮忙。]

问题描述 投票:0回答:1

我最近遇到了一个嵌套查询问题,我想分享并需要帮助。

有两张表:Student 和 School。

表 tblStudents 列:id、name、gender、SchoolName、SchoolId。

表 tblSchool 列:id、名称、位置。

现在我的查询是这样的:-

从 tblSchool 选择姓名,(从 tblStudents 中选择姓名,其中 a.SchoolId=id limit 1);

现在这个查询可能看起来很奇怪,但让我告诉我我想找出什么。 我希望返回学校名称以及第一个注册的学生。 (这就是为什么我使用限制 1)

首先从假设开始:

  1. tblStudents 中可能存在多个具有相同 schoolId 的学生记录;

现在,我在查询中遇到的问题是,由于两个表中都存在 where 子句中的“id”列,因此查询中使用的“id”属于 tblStudents,而不是 tblSchool

条件:我无法在 TBLSCHOOL 中使用别名。

任何帮助将不胜感激,谢谢!

mysql stored-procedures subquery mysql-workbench
1个回答
0
投票
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。

© www.soinside.com 2019 - 2024. All rights reserved.