如果我使用 SELECT 子查询编写一个查询,而另一个不使用 SELECT 子查询,那么我无法获得所需的输出?
If I am writing one query using SELECT subquery and other one without using SELECT subquery then I am not able to get desired outout?
问题:从下表中编写一个 SQL 查询,以查找在员工名字中包含字母 'T' 的部门工作的员工。 Return 员工 ID、名字和姓氏。
link 到问题 https://www.w3resource.com/sql-exercises/sql-subqueries-exercise-14.php
第一个,使用SELECT
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id IN
( SELECT department_id
FROM employees
WHERE first_name LIKE '%T%' );
第二个不使用SELECT
SELECT employee_id, first_name, last_name
FROM employees
WHERE FIRST_NAME LIKE '%t%';
你会得到不同的结果,因为你的第二个查询比第一个查询做了更严格的限制。
假设有一个部门有两个人在工作:Frank 和 Bert。
第一个查询会找到他们两个,因为他们都在同一个部门工作,并且至少有一个人 (Bert) 的名字中包含字母 T。
您的第二个查询将找不到 Frank,因为他的名字不包含字母 T,并且您不关心他和 Bert 工作的部门。
如果我没记错的话,该练习希望您获得有关在同一部门工作的所有员工的请求信息] 和那些名字中包含字母 T
的员工。因此,您的第一个语句(正确的语句)中的子查询 returns 所有名字中包含字母 T 的人的所有合法 department_id,然后用于让所有员工在该部门工作。
您的辅助语句仅获取名字与条件匹配的员工个人,并完成它,而不是与这些员工在同一部门工作的所有员工。
问题:从下表中编写一个 SQL 查询,以查找在员工名字中包含字母 'T' 的部门工作的员工。 Return 员工 ID、名字和姓氏。
link 到问题 https://www.w3resource.com/sql-exercises/sql-subqueries-exercise-14.php
第一个,使用SELECT
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id IN
( SELECT department_id
FROM employees
WHERE first_name LIKE '%T%' );
第二个不使用SELECT
SELECT employee_id, first_name, last_name
FROM employees
WHERE FIRST_NAME LIKE '%t%';
你会得到不同的结果,因为你的第二个查询比第一个查询做了更严格的限制。 假设有一个部门有两个人在工作:Frank 和 Bert。 第一个查询会找到他们两个,因为他们都在同一个部门工作,并且至少有一个人 (Bert) 的名字中包含字母 T。 您的第二个查询将找不到 Frank,因为他的名字不包含字母 T,并且您不关心他和 Bert 工作的部门。
如果我没记错的话,该练习希望您获得有关在同一部门工作的所有员工的请求信息] 和那些名字中包含字母 T
的员工。因此,您的第一个语句(正确的语句)中的子查询 returns 所有名字中包含字母 T 的人的所有合法 department_id,然后用于让所有员工在该部门工作。
您的辅助语句仅获取名字与条件匹配的员工个人,并完成它,而不是与这些员工在同一部门工作的所有员工。