sql问题(mysql)

code是jk(借款) state=6 可以展示,jk和code是cz(冲账)是关联关系,连接是ID和RelateDillID,现在需求是查询出没有冲账的借款单或者已经冲账的但是冲账单的state是(1,4,11) ,BillType等于1是借款单,2是冲账单

image.png

略略略1 发布于 2021-6-23 16:19
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
烟尘Lv6高级互助
发布于2021-6-23 16:31

select * from

(select * from 表 a where a.BillType=1) a

left join (select * from 表 b where b.BillType=2) b on a.ID=b.RelateDillID

where b.id is null or b.state in (1,4,11)

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-6-23 16:32

SELECT A.* FROM 表 A WHERE NOT EXISTS(SELECT * FROM 表 B WHERE A.ID<>B.RELATEBILLID AND B.BILLTYPE='2') AND A.BILLTYPE='1'---没有冲账的

UNION ALL

SELECT A.* FROM 表 A WHERE EXISTS(SELECT * FROM 表 B WHERE A.ID=B.RELATEBILLID AND B.BILLTYPE='2') AND A.BILLTYPE='1' AND A.STATE IN ('1','4','11')

  • 2关注人数
  • 318浏览人数
  • 最后回答于:2021-6-23 16:32
    请选择关闭问题的原因
    确定 取消
    返回顶部