表:SalesPerson+-----------------+---------+| Column Name | Type |+-----------------+---------+| sales_id | int || name | varchar || salary | int || commission_rate | int || hire_date | date |+-----------------+---------+sales_id 是该表的主键列。该表的每一行都显示了销售人员的姓名和 ID ,以及他们的工资、佣金率和雇佣日期。表:Company+-------------+---------+| Column Name | Type |+-------------+---------+| com_id | int || name | varchar || city | varchar |+-------------+---------+com_id 是该表的主键列。该表的每一行都表示公司的名称和 ID ,以及公司所在的城市。表:Orders+-------------+------+| Column Name | Type |+-------------+------+| order_id | int || order_date | date || com_id | int || sales_id | int || amount | int |+-------------+------+order_id 是该表的主键列。com_id 是 Company 表中 com_id 的外键。sales_id 是来自销售员表 sales_id 的外键。该表的每一行包含一个订单的信息。这包括公司的 ID 、销售人员的 ID 、订单日期和支付的金额。编写一个SQL查询,报告没有任何与名为 “RED” 的公司相关的订单的所有销售人员的姓名。以 任意顺序 返回结果表。查询结果格式如下所示。示例:输入:SalesPerson 表:+----------+------+--------+-----------------+------------+| sales_id | name | salary | commission_rate | hire_date |+----------+------+--------+-----------------+------------+| 1 | John | 100000 | 6 | 4/1/2006 || 2 | Amy | 12000 | 5 | 5/1/2010 || 3 | Mark | 65000 | 12 | 12/25/2008 || 4 | Pam | 25000 | 25 | 1/1/2005 || 5 | Alex | 5000 | 10 | 2/3/2007 |+----------+------+--------+-----------------+------------+Company 表:+--------+--------+----------+| com_id | name | city |+--------+--------+----------+| 1 | RED | Boston || 2 | ORANGE | New York || 3 | YELLOW | Boston || 4 | GREEN | Austin |+--------+--------+----------+Orders 表:+----------+------------+--------+----------+--------+| order_id | order_date | com_id | sales_id | amount |+----------+------------+--------+----------+--------+| 1 | 1/1/2014 | 3 | 4 | 10000 || 2 | 2/1/2014 | 4 | 5 | 5000 || 3 | 3/1/2014 | 1 | 1 | 50000 || 4 | 4/1/2014 | 1 | 4 | 25000 |+----------+------------+--------+----------+--------+输出:+------+| name |+------+| Amy || Mark || Alex |+------+解释:根据表orders中的订单 '3' 和 '4' ,容易看出只有 'John' 和 'Pam' 两个销售员曾经向公司 'RED' 销售过。所以我们需要输出表salesperson中所有其他人的名字。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sales-person
#测试数据Create table If Not Exists SalesPerson (sales_id int, name varchar(255), salary int, commission_rate int, hire_date date);Create table If Not Exists Company (com_id int, name varchar(255), city varchar(255));Create table If Not Exists Orders (order_id int, order_date date, com_id int, sales_id int, amount int);insert into SalesPerson (sales_id, name, salary, commission_rate, hire_date) values ('1', 'John', '100000', '6', '4/1/2006');insert into SalesPerson (sales_id, name, salary, commission_rate, hire_date) values ('2', 'Amy', '12000', '5', '5/1/2010');insert into SalesPerson (sales_id, name, salary, commission_rate, hire_date) values ('3', 'Mark', '65000', '12', '12/25/2008');insert into SalesPerson (sales_id, name, salary, commission_rate, hire_date) values ('4', 'Pam', '25000', '25', '1/1/2005');insert into SalesPerson (sales_id, name, salary, commission_rate, hire_date) values ('5', 'Alex', '5000', '10', '2/3/2007');insert into Company (com_id, name, city) values ('1', 'RED', 'Boston');insert into Company (com_id, name, city) values ('2', 'ORANGE', 'New York');insert into Company (com_id, name, city) values ('3', 'YELLOW', 'Boston');insert into Company (com_id, name, city) values ('4', 'GREEN', 'Austin');insert into Orders (order_id, order_date, com_id, sales_id, amount) values ('1', '1/1/2014', '3', '4', '10000');insert into Orders (order_id, order_date, com_id, sales_id, amount) values ('2', '2/1/2014', '4', '5', '5000');insert into Orders (order_id, order_date, com_id, sales_id, amount) values ('3', '3/1/2014', '1', '1', '50000');insert into Orders (order_id, order_date, com_id, sales_id, amount) values ('4', '4/1/2014', '1', '4', '25000');
selectnamefrom SalesPersonwhere sales_id not in (selectsales_idfrom Orderswhere com_id in (selectcom_idfrom Companywhere name = 'RED'));

笔试题合集免费领取方法
方法一:关注公众号【跟强哥学SQL】,回复关键字【力扣】获取链接。
方法二:访问SQL网页面:https://sql.wang/sql-leetcode/sql-exercise
文章转载自跟强哥学SQL,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




