如何用单条MySQL SELECT语句获取指定条件的客户记录?
解决方案
完全可以用单条SELECT语句实现这个查询,替代你当前繁琐的两步操作。以下是针对你需求的具体实现:
SELECT c.client_id, c.client_name, c.province_id FROM Exclusive e INNER JOIN Client c ON e.client_id = c.client_id WHERE e.staff_id = 9 AND c.province_id = 2002;
语句说明
- 通过
INNER JOIN直接关联Exclusive表和Client表,利用客户ID匹配关联数据 - 一次筛选出
staff_id=9对应的专属客户,同时过滤出其中province_id=2002的记录 - 直接返回你需要的三个字段,无需额外循环调用接口查询详情
扩展场景:包含员工负责省份内的所有客户
如果你的业务逻辑中,员工除了Exclusive表中的专属省外客户,还负责Division表分配省份内的所有客户,可以用UNION合并两类结果:
SELECT c.client_id, c.client_name, c.province_id FROM Exclusive e INNER JOIN Client c ON e.client_id = c.client_id WHERE e.staff_id = 9 AND c.province_id = 2002 UNION SELECT c.client_id, c.client_name, c.province_id FROM Division d INNER JOIN Client c ON d.province_id = c.province_id WHERE d.staff_id = 9 AND c.province_id = 2002;
这个语句会同时返回该员工的专属客户中省份为2002的记录,以及该员工负责省份(2002)内的所有客户记录。
内容的提问来源于stack exchange,提问作者ben
相关产品推荐
相关产品推荐

