SQL Inner-Join,无法得到正确的输出

问题描述 投票:0回答:0

我有 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

有人能指出我哪里出了问题吗?以及如何实现让第一行消失的目标?

非常感谢您的帮助。

mysql inner-join
© www.soinside.com 2019 - 2024. All rights reserved.