所以基本上我想要做的是在两个表上使用INNER JOIN,但只能从表A中选择特定的行并从表B中选择相应的行?MySQL试图将INNER JOIN和UNION一起使用?
表A被称为“课程”,我想选择名为“微积分”,“英国文学I”和“工作室艺术”的栏目“course_title”下的条目以及相应的'department_id ',并且我会使用'department_id'作为引用来创建一个名为'departments'的第二个表,它具有'department_id'和'department_name'列。
我想这样做的唯一方法是通过使用联合来选择三个特定的课程,但我想不出一种方法来获得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;
就是否该将任何想法工作?如果是这样,我该如何纠正我的语法?如果不是,另一种方法是什么?
谢谢!
“ERROR 1064(42000):你在你的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的正确语法手册“WHERE course.course_title =‘积分’)”我会尝试使用下面建议的IN子句,看看是否可以解决它... – hayleyelisa 2013-04-03 21:30:51