所以基本上我想做的是在两个表上使用 INNER JOIN,但只选择表 A 中的特定行和表 B 中的相应行?
表 A 称为“类(class)”,我想在“course_title”列下选择名为“微积分”、“英国文学 I”和“工作室艺术”的条目,以及它们对应的“department_id” ,并且我将使用“department_id”作为引用来创建与第二个表的 INNER JOIN,该表称为“departments”,其中包含列“department_id”和“department_name”。
我想过这样做的唯一方法是使用 UNION 来选择三个特定的类(class),但我想不出让 INNER JOIN 与之一起工作的方法?我尝试了几种不同类型的语法并不断出错,这是我的尝试之一:
(SELECT course.course_title, cours' at line 1
mysql> (SELECT course_title, department_id FROM course WHERE course_title = 'Calculus')
-> UNION
-> (SELECT course_title, department_id FROM course WHERE course_title = 'British Literature I')
-> UNION
-> (SELECT course_title, department_id FROM course WHERE course_title = 'Studio Art I')
-> UNION
-> (SELECT department_name, department_id FROM departments)
-> FROM departments INNER JOIN course ON departments.department_id = course.department_id;
这是我的另一个尝试:
(SELECT course.course_title, course.department_id, departments.department_id, departments.department_name WHERE course.course_title = 'Calculus')
-> UNION
-> (SELECT course.course_title, course.department_id, departments.department_id, departments.department_name WHERE course.course_title = 'British Literature I')
-> UNION
-> (SELECT course.course_title, course.department_id, departments.department_id, departments.department_name WHERE course.course_title = 'Studio Art I')
-> FROM departments INNER JOIN course ON departments.department_id = course.department_id;
关于这是否可行有任何想法吗?如果是这样,我该如何更正我的语法?如果不是,还有什么方法?
谢谢!!
最佳答案
您可以像下面这样写您的查询。
SELECT course.course_title, course.department_id, departments.department_id, departments.department_name
FROM departments
INNER JOIN course ON departments.department_id = course.department_id
WHERE course.course_title IN ('Calculus', 'British Literature I','Studio Art I')
关于MySQL 试图同时使用 INNER JOIN 和 UNION?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798428/