MySQL 试图同时使用 INNER JOIN 和 UNION?

标签 mysql sql union inner-join

所以基本上我想做的是在两个表上使用 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/

相关文章:

php - MySQL 日期格式

sql - Redshift - 聚合函数调用可能没有嵌套聚合或窗口函数

mysql:从两者中选择最有效的查询

php - 设置从网站到数据库的连接并运行查询

android - 从表中检索最后插入的 'n' 行

java - 似乎无法登录或连接到 MySQL 数据库

sql - Rails,迭代组查询的结果

sql - 在 sequelize 中使用 group by 和 joins

mysql - 在多个 SQL 语句中使用 Count() 并使用 join 连接它们

mysql - 在 "ORDER BY"(Mysql) 上应用 "UNION"