我正在尝试编写一个查询,查找所有没有公司订单的销售人员的姓名。
我的问题是:
SELECT Name
FROM Salesperson
JOIN Orders ON orders.salesperson_id = Salesperson.ID
WHERE cust_id <> 4
GROUP BY Name;
虽然这有点奏效,但我觉得我应该更明确一些。如果你能帮我找到我的错误所在,我会很感激你的帮助。我期待看到的是。。。
Abe
Chris
Dan
Joe
这些表格是:
销售员
ID Name Age Salary
1 Abe 61 140000
2 Bob 34 44000
5 Chris 34 40000
7 Dan 41 52000
8 Ken 57 115000
11 Joe 38 38000
顾客
ID Name City Industry
4 Samsonic plesant J
6 Panasung oaktown J
7 Samony Jackson B
9 Orange Jackson B
订单
Number Date cust_id salesperson_id amount
10 1996-08-02 4 2 540
20 1999-01-30 4 8 1800
30 1995-07-14 9 1 460
40 1998-01-29 7 2 2400
50 1998-02-03 6 7 600
60 1998-03-02 6 7 720
70 1998-05-06 9 7 150
1条答案
按热度按时间r3i60tvu1#
当将这两个表连接在一起时,只会得到显示在这两个表中的ID以及它们的
cust_id
值不是4,因为您的联接不是OUTER JOIN
,即。ids = 1, 2, 7
.然后,当你陈述
SELECT Name
,您将获得:(the)
GROUP BY
在这种情况下,语句是完全无用的,因为您不使用任何COUNT(...)
,SUM(...)
或类似的SELECT
)如果要避免重复,可以替换
GROUP BY
语句使用SELECT DISTINCT
而不是SELECT
.从您所期望的结果来看,我想您应该排除所有使用
cust_id = 4
.这应该很顺利: