sql - 如何修复 SQL 连接中的错误?
问题描述
使用提供的数据库,编写和执行 SELECT 语句以获取以下信息:
简单连接
部分表
- 讲师 6 的教学总学分是多少?
我尝试了什么:
select sum(c.credithours)
from courses c
join sections s on c.courseid = s.courseid
join instructors i on s.instructor = i.ID
and s.instructor = 6;
错误:
FROM 子句中的语法错误
- 请提供 1147 室所有课程的 CRN、课程名称、描述和学时、上课时间和房间号。是否有任何冲突?
我尝试了什么:
select CRN, CourseName, description, credithours, timedays, roomno
from courses c
join sections s on c.courseid = s.courseid
join instructors i on s.instructor = i.ID
and roomno = "F1147";
错误:
FROM 子句中的语法错误
学生日程表
- 列出为 CRN=30101 注册的部分的学生姓名和 ID。(列出学生的名字、姓氏、ID 和 CRN)
我尝试了什么:
select firstname, lastname, ID, CRN
from studentschedule ss
join students s on ss.student_id = s.id
and CRN = 30101;
错误:
FROM 子句中的语法错误
- 请列出 CRN=30115 部分中的所有学生姓名(名字和姓氏)。
我尝试了什么:
select firstname, lastname, ID, CRN
from studentschedule ss
join students s on ss.student_id = s.id
and CRN = 30115;
错误:
FROM 子句中的语法错误
- 请列出 id=6 的学生正在参加的所有部分的所有部分信息。
我尝试了什么:
select s.*
from studentschedule ss
join sections s on ss.CRN = s.CRN
and studentid = 6;
错误:
FROM 子句中的语法错误
- 高级(多表):请列出课程名称、CRN 以及 CRN=30115 部分中所有学生的姓名。
我尝试了什么:
select firstname, lastname, ID, CRN, coursename
from studentschedule ss
join students s on ss.student_id = s.id
join sections sec on ss.CRN = sec.CRN
join courses c on sec.courseid = c.courseid
and CRN = 30115;
错误:
FROM 子句中的语法错误
解决方案
Access 本身没有 JOIN。
您必须使用 INNER JOIN、LEFT JOIN 或 RIGHT JOIN - 否则您将收到该错误。
例如:问题 1 的解决方案是:
SELECT Sum([CreditHours]) AS totalHours
FROM Courses INNER JOIN Sections ON Courses.CourseID = Sections.CourseID
WHERE (((Sections.Instructor)=6));
请注意,您根本不需要教练表,除非他们询问有关教练的姓名或其他详细信息。
另请注意:我不会担心在这样一个简单的查询中使用短表名进行优化。
推荐阅读
- javascript - 使用socket.io(NodeJs)检测客户端是否与网络断开连接
- javascript - 如何获取进程nodejs的本地范围内的所有变量
- python - python 中的 a,b = b,a 与 C++ 中的 std::swap()
- java - 如何使用 Jackson 将 JSON 的一部分作为纯文本获取
- asp.net - Jmeter缓存管理器使用
- java - Java 解析 unicode 数学。来自 JSON 的公式
- node.js - NodeJS 和文件 package.json
- html - chrome 中的 Flex 框项目没有占用父项的全宽
- amazon-web-services - 我的域无法由 AWS Route 53 以外的 DNS 提供商解析
- java - 使用它时如何处理 StackOverflowError。关键词