繁体   English   中英

MySQL试图一起使用INNER JOIN和UNION吗?

[英]MySQL trying to use INNER JOIN and UNION together?

所以基本上我想做的是在两个表上使用INNER JOIN,但是只选择表A中的特定行和表B中的对应行?

表A被称为“课程”,我想在“ course_title”列下选择名为“微积分”,“英国文学I”和“工作室艺术”的条目,以及它们相应的“ department_id”和I将使用“ department_id”作为参考,使用第二个表(称为“ departments”)创建一个INNER JOIN,该表具有“ department_id”和“ department_name”列。

我想到的唯一方法是使用UNION选择这三门特定的课程,但是我想不通一种方法来使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;

关于这是否行得通的任何想法? 如果是这样,如何纠正我的语法? 如果没有,还有什么方法?

谢谢!!

您应该使用IN子句...

像这样

WHERE course IN ('Calculus','Physics','Art')

您可以像下面这样编写查询。

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM