请假sql一下问题?sql外连接为什么出现这种错误?

img

img

img


请假sql一下问题?sql外连接为什么出现这种错误?试了几次都出现这种错误?字段名是正确的

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在你的SQL语句中,出现了一些语法错误和拼写错误。

第一条语句中,SELECT语句拼写错误,应该是SELECT而不是SELECI。同时,class和stuinfo表之间的连接应该使用LEFT JOIN或RIGHT JOIN,而不是INNER JOIN,因为INNER JOIN会过滤掉不匹配的行。另外,stuinfo表中没有“nano”和“ago”这两个列,应该是“name”和“age”。

正确的SQL语句应该是:

SELECT class.stu_id, class.classinfo, stuinfo.name, stuinfo.age
FROM class
LEFT JOIN stuinfo ON class.stu_id = stuinfo.id;


第二条语句中,SELECT语句拼写错误,同样应该是SELECT而不是SELECI。FROM子句中缺少表名,应该将表名class放在FROM子句中。连接条件也应该放在ON子句中,而不是OH。此外,stuinfo表中的列应该是“name”和“age”,而不是“nano”和“ago”。

正确的SQL语句应该是:

SELECT class.stu_id, class.classinfo, stuinfo.name, stuinfo.age
FROM class
INNER JOIN stuinfo ON class.stu_id = stuinfo.id;


你已经在表后面命名了别名,为啥前面还要用 表名.字段名

stu_id这列没有,是不是写错了。

因为你已经把表名是用as起了别名为c和s了,所以在select中选择表字段时前缀就不能用原表名了,需要用别名了,sql需要修改为:

SELECT c.stu_id,c.classinfo,s.name,s.age
FROM `class` AS c
INNER JOIN stuinfo AS s

你不是给class起了别名c了吗?还用class去点,用别名去点

根据您提供的截图,我看到了这个错误信息是“Invalid column name 'AttendanceDate'”(无效的列名 'AttendanceDate')。这可能是因为您的查询语句中引用了一个不存在的列名。

建议您检查一下您的查询语句中所引用的列名是否正确,尤其是在使用外连接时,请注意检查关联的列名是否正确匹配。

另外,您还可以尝试使用别名来简化查询语句并减少出错的可能性,例如:

SELECT e.EmployeeName, a.AttendanceDate, a.StartTime, a.EndTime
FROM HR_T_Employee e
LEFT JOIN HR_T_Attendance a ON e.EmployeeID = a.EmployeeID AND a.AttendanceDate = '2022-03-09'
WHERE e.EmployeeCode = '100010'

希望这能够帮助您解决问题,如果还有其他问题,请随时提出。