我有 5 个表涉及 SQL,这是它们的数据..
conversation_id | 员工编号 | client_id | 总结 |
---|---|---|---|
1 | 1 | 1 | 约翰和瑞德的对话 |
1 | 1 | 2 | 约翰和奥兰治的对话 |
1 | 2 | 3 | Kitty和Yellow的对话 |
1 | 2 | 4 | Kitty和Green的对话 |
员工编号 | 员工姓名 |
---|---|
1 | 约翰 |
2 | 小猫 |
client_id | province_id | 客户姓名 |
---|---|---|
1 | 35 | 红色 |
1 | 81 | 橙色 |
1 | 81 | 黄色 |
1 | 81 | 绿色 |
province_id | 省名 |
---|---|
35 | 多伦多 |
81 | 温哥华 |
部门编号 | 员工编号 | province_id |
---|---|---|
1 | 1 | 35 |
1 | 1 | 35 |
1 | 2 | 81 |
Kitty 不应该访问 John 和 Toronto 的客户(客户端红色)之间的对话,因为她无法访问 Toronto(如分区表中所示的关系)
这是下面代码的结果:
员工姓名 | 省名 | 客户姓名 | 总结 |
---|---|---|---|
约翰 | 温哥华 | 红色 | 约翰和雷德的对话 |
约翰 | 温哥华 | 橙色 | 约翰和奥兰治的对话 |
小猫 | 温哥华 | 黄色 | Kitty和Yellow的对话 |
小猫 | 温哥华 | 绿色 | Kitty和Green的对话 |
这是我的代码。
SELECT
conversation.conversation_id,
conversation.staff_id,
conversation.client_id,
conversation.summary,
staff.name as staff_name,
client.name as client_name,
province.name as province_name
FROM conversation
LEFT JOIN staff
ON staff.staff_id = conversation.staff_id
LEFT JOIN client
ON client.client_id = conversation.client_id
LEFT JOIN province
ON province.id = client.company_province_id
INNER JOIN division
ON division.province_id = client.province_id
WHERE staff_id = 2
有人能指出我哪里出了问题吗?以及如何实现让第一行消失的目标?
非常感谢您的帮助。