本章节主要介绍 Spark SQL 中的多表连接查询操作。

6.1 笛卡尔积 (Cross Join)

笛卡尔积是指两个表中所有行两两组合的结果集。

SELECT * FROM emp, dept;

6.2 等值连接 (Equijoin / Natural Join)

等值连接是指根据两个表中相同列的值进行连接的操作。

SELECT 
    e.empno, 
    e.ename, 
    e.sal, 
    e.deptno, 
    d.dname 
FROM 
    emp e 
JOIN 
    dept d ON e.deptno = d.deptno;

6.3 非等值连接 (Non-Equijoin)

非等值连接是指根据两个表中不同列的值,使用比较运算符进行连接的操作。

SELECT 
    e.ename, 
    e.empno, 
    s.grade 
FROM 
    emp e 
JOIN 
    salgrade s ON e.sal BETWEEN s.losal AND s.hisal;