mysql - 如何使用 "USING"关键字连接三个表并使用mysql语法显示

标签 mysql using

这就是我如何使用内部连接来连接表

SELECT lab5enrollment.matricno, lab5student.stuname, 
lab5enrollment.courseid, 
lab5course.cname
FROM ((lab5enrollment
INNER JOIN lab5student ON lab5enrollment.matricno = lab5student.matricno)
INNER JOIN lab5course ON lab5enrollment.courseid = lab5course.courseid)
WHERE lab5enrollment.courseid = 'CSF3402';

这就是我使用 using 关键字连接表的方式,但我不知道如何连接三个表...

SELECT matricno, stuname, courseid, cname
FROM lab5enrollment
JOIN lab5student
USING (matricno) 
WHERE courseid = 'CSF3402';

我想观察使用内部联接和使用...之间的区别

最佳答案

出于多种原因,您可能应该倾向于使用带有显式 ON 子句的联接。如果您想在此处使用USING,则以下内容应该有效:

SELECT
    t1.matricno,
    t2.stuname,
    t1.courseid,
    t3.cname
FROM lab5enrollment t1
INNER JOIN lab5student t2
    USING (matricno)
INNER JOIN lab5course t3
    USING (courseid)
WHERE
    t1.courseid = 'CSF3402';

这假设 lab5enrollmentlab5student 都有一个具有相同名称 matricno 的列,并且 lab5studentlab5course 都有一个名为 courseid 的列。

关于mysql - 如何使用 "USING"关键字连接三个表并使用mysql语法显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52916074/

相关文章:

php - 向 MySQL 数据库添加多个标签

mysql - 从 Hadoop Reducer 向 MySQL 写入数据

php - 我无法将 PHP 变量传递给 SQL 查询

c++ - 为什么允许类型别名作为变量名?

mysql - 使用 GoLang 从 MySql 数据库将图像 (blob/jpeg) 转换为 html

mysql - 将自动增量 ID 添加到现有表?

c++ - 什么需要我声明 "using namespace std;"?

c++ - 在混合模式 DLL 中链接到 presentationcore.dll

c# - 从 C# 中的流对象创建一个临时文件

linq - 在C#中使用Linq进行字符串替换