gpt4 book ai didi

sql - 联接中 WHERE 和 AND 子句的区别

转载 作者:行者123 更新时间:2023-12-01 12:46:49 28 4
gpt4 key购买 nike

谁能解释一下为什么在下面的 SQL 中有两个不同的结果集。

SQL 1-

SELECT e.employee_id,e.first_name,
e.department_id,
d.department_id,
d.department_name
FROM employees e RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id) where d.department_name='Treasury';

结果:仅记录 d.department_name='Treasury'。

SQL 2-

SELECT e.employee_id,e.first_name,
e.department_id,`enter code here`
d.department_id,
d.department_name
FROM employees e RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id) and d.department_name='Treasury';

结果:记录所有 d.deparment_name 值。

最佳答案

on 条件用于在联接表中查找匹配的行。使用外连接(右连接或左连接),不匹配 on 条件的行仍可能出现在结果集中。

where 条件应用于所有选定的行。任何未通过 where 测试的行都将从结果集中排除。

关于sql - 联接中 WHERE 和 AND 子句的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065077/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com