低调的小猫 2019-09-11 10:16 采纳率: 0%
浏览 274
已结题

ps\sql 查询某个表多个类型必须同时存在数据

假设现在有张账户申请表t_fund_apply,表里有个字段fund_code账户类型。每个账户类型有对应的t_fund_price表。
现在针对对t_fund_apply表,是根据客户不同的选择产生对应的记录,后台再根据apply进行相应的处理。

目前的需求是针对apply表,必须是所有的账户类型都要有t_fund_price记录才允许做。
如果有a , b两个账户,但是只有a账户有t_fund_price,b账户没有。此时无需找出对应的apply记录。
请大神们帮忙设计一下这个sql

t_fund_trans_apply表的数据
select *
from t_fund_trans_apply t
where t.policy_id = 367167
and t.apply_time = date '2016-04-11'

有3条数据:
1 5496334 11 4/11/2016
2 5496335 12 4/11/2016
3 5496336 13 4/11/2016

select t.fund_code, t.pricing_date, t.price_status
from t_fund_price t
where t.fund_code in (11, 12, 13)
and t.pricing_date = date '2016-04-11';
有两条数据:
1 11 4/11/2016 3
2 12 4/11/2016 3

这种由于t_fund_price表没有符合条件的fund_code为13的数据,

所以不应该把t_fund_trans_apply的记录查询出来。

只有t_fund_price中所有fund_code都存在的情况下,需要把t_fund_trans_apply的记录查询出来。

  • 写回答

3条回答 默认 最新

  • JonathanYan 2019-09-11 11:59
    关注

    没懂你啥意思,ab账户什么关系?t_fund_apply的fund_code是外键吗,对应t_fund_price的主键?
    如果这样为什么ab一个没有t__fund_price就不用查apply,想要知道有没有price就必须查apply啊
    把你的想法说清楚,最好加上表结构和期望的输入输出示例:不是描述,是具体到值的示例。


    你的意思是查询fund_code同时在两个表里都存在的项么?这个说白了就是多表联合查询,看你写的sql你应该是只会写单表的。多表查询可以直接在FROM后跟两个表,例如

    SELECT  apply.police_id, apply.apply_time, apply.fund_code 
        FROM t_fund_trans_apply apply, t_fund_price price
            WHERE apply.fund_code = price.fund_code
    

    还可以使用JOIN方法进行多表查询,我暂时不太了解JOIN和FROM的区别,可能是效率优势吧,最好学着用,用JOIN是这么写的

    LECT  apply.police_id, apply.apply_time, apply.fund_code 
        FROM t_fund_trans_apply apply
            LEFT JOIN t_fund_price price
                ON apply.fund_code = price.fund_code
    #       WHERE ...  针对FROM的表的查找条件写在WHERE中
    #                  JOIN的条件写在ON中
    

    JOIN分为INNER/OUTER JOIN,OUTER JOIN分为LEFT/RIGHT (OUTER) JOIN,搜索结果类似集合的交并补集,相关知识点百度“sql JOIN”第一页就能查到,这里就不列举了。

    我这些是按照你提供的东西写出来的,可能和你想要的还有偏差,因为你问题描述的还是不到位:首先你还是没说你最开始ab账户的关系跟你所要的sql有什么联系,我认为这个sql只跟fund_code字段有关;其次你新提供的信息不完整且包含太多不必要的东西,如果还有疑问要把这些信息整理出来:

    1.表名1(字段1,字段2,字段3,。。。)
    对应的数据(按列对应)

    表名2(。。。。)
    对应的数据
    2.表名1:字段x ==> 表名2:字段1 (外键关系,如果有)
    3. 输出:字段1,字段2,字段3.。。。
    对应的数据

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题