提问人:OrianFishken 提问时间:6/7/2023 最后编辑:OrianFishken 更新时间:6/8/2023 访问量:104
SQL 存在于带有 where 子句的子查询中
SQL exists in subquery with where clause
问:
我真的不明白为什么我们在这里收到来自 SF 的员工名单,并且存在于办公室表格中。
- Exists 遍历子查询,结果为 0 或 1 - 子查询中有一行条件为 where or not。
- 如果结果为 0 或 1,则主查询中的 WHERE 仅接收 1 或 0,WHERE 1 - 表示检索所有行。
- 查询工作正常,但我不明白为什么
SELECT
employeenumber,
firstname,
lastname,
extension
FROM
employees
WHERE
EXISTS(
SELECT
1
FROM
offices
WHERE
city = 'San Francisco' AND
offices.officeCode = employees.officeCode)
;
答:
1赞
JNevill
6/8/2023
#1
此子查询是一个相关的子查询,因为每一行都通过 .officeCode
它说“对于这个记录,找到它,如果你发现那个办公室在,然后返回一些东西”,在这种情况下,它是一个,但它可能是字符串“butthead”,它会很好用。如果返回了某些内容,则该记录将进入查询的结果集。如果未返回任何内容,则该记录不会进入结果集。officeCode
employee
officeCode
offices
city
"San Francisco"
1
它将返回与以下内容相同的结果:
SELECT
employee.employeenumber,
employee.firstname,
employee.lastname,
employee.extension
FROM employee
INNER JOIN offices
ON employee.officeCode = offices.officeCode
WHERE offices.city = 'San Francisco';
区别在于,在此查询中,来自的列是子句中返回的候选列。offices
SELECT
评论
subquery