在SQL查询中,ONWHERE 子句用于指定连接条件和过滤条件,分别用于确定如何连接两个表以及哪些记录应该被包含在结果集中。

  1. 连接条件(ON)ON 子句用于在JOIN操作中指定连接条件。它位于两个表之间,指定了哪些字段的值应该相等才能进行连接。在左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接(FULL OUTER JOIN)中,ON 子句是必须的。

    例如,如果你有两个表 employeesdepartments,你想连接它们基于 department_id 字段,你的查询可能看起来像这样:

    SELECT e.employee_id, e.name, d.department_name
    FROM employees e
    LEFT JOIN departments d ON e.department_id = d.department_id;
    

过滤条件(WHERE)WHERE 子句用于在 SELECT 语句中过滤记录。它用于限制结果集,只包含满足特定条件的记录。WHERE 子句可以在 JOIN 之前或之后应用。

例如,如果你想从上面的查询中只选择 department_id10 的部门,你的查询将修改为:

SELECT e.employee_id, e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id
WHERE d.department_id = 10;

on后面跟的是两个表连接条件 where跟的是不同的过滤条件 嗯想说限制条件但是过滤更加恰当

不知为何, a.aac001 = b.aac001(+) 和适用left join 结果集数量不一致