我只是想知道如果其中两个表没有公共列,是否可以连接四个表?
我只需要显示列
empno, lastname, deptname, jobdesc, salary
这些是我想加入的桌子:
EMP
表 ---> 员工编号、姓氏、名字JOBHIST
表 ---> 员工号、职位代码、工资、部门代码JOB
表--->职位代码,jobdescDEPT
表--->部门代码,部门名称这是我到目前为止所尝试过的。当我运行它时,它不显示部门名称、工作描述和薪水。我知道我的脚本是错误的,因为我
LEFT JOIN
DEPT
和 JOB
表到 JOBHIST
表。
即使
DEPT
和 JOB
表没有公共列,是否有办法加入它们?
SELECT
em.empno, em.lastname, d.deptname, j.jobdesc, jh.salary
FROM
EMP em
LEFT JOIN
JOBHIST jh ON em.empno = jh.empno
LEFT JOIN
DEPT d ON jh.deptcode = d.deptcode
LEFT JOIN
JOB j ON jh.jobcode = j.jobcode
ORDER BY
empno;
是的,即使表没有公共列,也可以通过使用可能间接关联它们的其他列来连接表。您可以执行一系列 JOIN 操作来连接它们。例如,如果有表A、表B、表C和表D,并且只有表A和表B有公共列,则可以先连接A和B,然后将结果集与表C连接,最后将该结果与表 D 结合起来。
假设您要显示这四个表中的 empno、lastname、deptname、jobdesc 和 salal。下面是一个使用 SQL 语法的示例来说明这个概念:
SELECT A.empno, A.lastname, C.deptname, D.jobdesc, D.salary
FROM TableA A
JOIN TableB B ON A.common_column = B.common_column
JOIN TableC C ON B.another_column = C.another_column
JOIN TableD D ON C.yet_another_column = D.yet_another_column;