【发布时间】:2021-08-05 17:50:25
【问题描述】:
我有两张桌子。
-
TblA具有以下列:StudentName、StudentID、FeeRateID、CourseType、CourseSpeciality。StudentGender.CourseType有 3 个类别(计算机科学、社会研究和文学研究)。CourseSpeciality(在计算机科学下)有 4 个不同的类别(Java、Python、SQL、R)。社会研究有 2 个,文学研究有 2 个CourseSpecialities。 -
表
TbLB具有 StudentID、DateOfRegistration、FeeRateID。
出于管理目的,我需要加入这两个表以获取 StudentName, FeeRate, FeeRateID。我被告知要加入两个表以获取所有学生的详细信息。必须包括文学和社会研究学生的所有 CourseSpecialty。
但我被要求包括计算机科学专业的 Java、Python 和 R 课程专业的学生。
我试过了,但是我的代码抛出了一个语法错误。我知道问题在于内部选择(Where 子句),但我无法自己解决这个问题。有人可以帮帮我吗?
SELECT
A.StudentName, A.StudentID, A.CourseType, B.FeeRateID
FROM
A
LEFT JOIN
B ON a.FeeRateId = b.FeeRateID
WHERE
A.CourseType IN ('Social Studies', 'Literary Studies', 'Computer Science' (SELECT CourseType FROM A WHERE CourseType = 'Computer Science' and CourseSpecialty IN ('Java', 'Python', R);
【问题讨论】:
-
您的
IN格式不正确。只需使用两个单独的子句,一个用于常量,一个用于子查询。 -
@Marc_s,如果您能编写代码纠正我的错误 IN 部分,将不胜感激。
标签: sql left-join where-clause