首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle SQL中使用JOIN获取所需信息时遇到问题

在Oracle SQL中使用JOIN获取所需信息时遇到问题
EN

Stack Overflow用户
提问于 2012-12-11 07:38:46
回答 1查看 119关注 0票数 1

我很难找到解决这个问题的正确方法。

代码语言:javascript
复制
Database tables:
Student(stdID[pk], stdName, stdSet)
Enrollment(stdID[pk], crsID[pk], year[pk], semester[pk], grade)
Offering(crsID[pk], year[pk], semester[pk], instrID)
Course(crsID[pk], crsTitle, creditHrs)
Instructor(instrID[pk], instrName, dept)

查找在2006至2008年间教授过给定学生A01234567的所有讲师。列出学生ID、instructorID和年份。不要重复行。

我最初的想法是:

代码语言:javascript
复制
SELECT DISTINCT stdID, instrID, year
FROM Student s
JOIN Instructor i ON Offering o (o.instrID = i.instrID)
JOIN Offering o ON Course c (c.crsID = o.crsID)
WHERE stdID = 'A01234567'
    AND date BETWEEN (2006 AND 2008);

然而,这并不完全正确。我注意到这与“提供连接时缺少2列”有关,但我不知道这是什么意思……

EN

回答 1

Stack Overflow用户

发布于 2012-12-11 08:00:36

您的联接语法不正确。以下是您的查询,已修复,因此它至少在语法上是正确的。这可能会帮助您转向解决方案:

代码语言:javascript
复制
SELECT DISTINCT stdID, instrID, year
FROM Instructor i JOIN
     Offering o
     ON o.instrID = i.instrID join
     Course c
     on c.crsID = o.crsID
WHERE stdID = 'A01234567' AND date BETWEEN (2006 AND 2008);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13811202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档