You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于LOAN和BEHAVIOR表查询unpaid_number≥1的CUSTOMER数据?

解决方案:查询关联逾期行为的客户记录

没问题,我来帮你搞定这个SQL查询需求!根据你给出的三张表结构,我们可以通过两种常见的方式实现需求:

方法一:使用INNER JOIN关联三张表

这种方法直观易懂,通过表之间的关联键把三张表连接起来,再筛选出符合条件的记录,最后去重避免同一个客户被多次返回:

SELECT DISTINCT c.*
FROM CUSTOMER c
INNER JOIN LOAN l ON c.customer_id = l.customer_id
INNER JOIN BEHAVIOR b ON l.behavior_id = b.behavior_id
WHERE b.unpaid_number >= 1;

逻辑说明:

  • INNER JOIN LOAN:把客户表和贷款表通过customer_id关联,只保留有贷款记录的客户
  • INNER JOIN BEHAVIOR:把贷款表和行为表通过behavior_id关联,只保留有对应行为记录的贷款
  • WHERE b.unpaid_number >= 1:筛选出逾期次数≥1的行为记录
  • DISTINCT c.*:确保每个客户只返回一条记录(因为一个客户可能有多笔贷款对应逾期行为)

方法二:使用EXISTS子查询(推荐大数据量场景)

如果你的表数据量比较大,这种方法通常效率更高,因为EXISTS只要找到匹配的记录就会停止查询,不需要全表连接:

SELECT *
FROM CUSTOMER c
WHERE EXISTS (
    SELECT 1
    FROM LOAN l
    JOIN BEHAVIOR b ON l.behavior_id = b.behavior_id
    WHERE l.customer_id = c.customer_id
      AND b.unpaid_number >= 1
);

逻辑说明:

  • 外层查询遍历每个客户记录
  • 子查询检查当前客户是否存在至少一笔贷款,关联着unpaid_number≥1的行为记录
  • 只要子查询返回结果,就保留该客户记录,天然不会出现重复的客户数据

内容的提问来源于stack exchange,提问作者chihabeddineAourinmouche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:44:06