mybatis实现多表联查

在大型的系统开发中,设计的表比较多,有时候会用一个条件实现多表联查,这时候用union all会方便很多:

<!-- 获取撤单列表 -->
    <select id="queryList" parameterType="recallDealBean" resultType="hashmap">
    select 
    fs.APP_SNO_ as "oappSno",
    (select SHORT_NAME_ from CMN_FUND where FUND_CODE_ = fs.FUND_CODE_)||'('||fs.FUND_CODE_||')' as "shortName",
    fs.BIZ_FLAG_ as "bizFlag",
    fs.APP_AMT_ as "appAmt",
    fs.BRANCH_CODE_ as "branchCode",
    fs.MODIFY_USER_ as "modifyUser",
    fs.CHECK_USER_ as "checkUser"
    from 
    FND_SUBSCRIBE fs
    where 
    fs.FINANCE_ACC_ = #{financeAcc}
    <![CDATA[ and fs.TRADE_DATE_ >= to_char(sysDate,'YYYYMMDD') ]]>
    UNION ALL
    select 
    fp.APP_SNO_ as "oappSno",
    (select SHORT_NAME_ from CMN_FUND where FUND_CODE_ = fp.FUND_CODE_)||'('||fp.FUND_CODE_||')' as "shortName",
    fp.BIZ_FLAG_ as "bizFlag",
    fp.APP_AMT_ as "appAmt",
    fp.BRANCH_CODE_ as "branchCode",
    fp.MODIFY_USER_ as "modifyUser",
    fp.CHECK_USER_ as "checkUser"
    from 
    FND_PURCHASE fp
    where 
    fp.FINANCE_ACC_ = #{financeAcc}
    <![CDATA[ and fp.TRADE_DATE_ >= to_char(sysDate,'YYYYMMDD') ]]>
    UNION ALL
    select 
    fr.APP_SNO_ as "oappSno",
    (select SHORT_NAME_ from CMN_FUND where FUND_CODE_ = fr.FUND_CODE_)||'('||fr.FUND_CODE_||')' as "shortName",
    fr.BIZ_FLAG_ as "bizFlag",
    fr.APP_VOL_ as "appVol",
    fr.BRANCH_CODE_ as "branchCode",
    fr.MODIFY_USER_ as "modifyUser",
    fr.CHECK_USER_ as "checkUser"
    from 
    FND_REDEEM fr
    where 
    fr.FINANCE_ACC_ = #{financeAcc}
    <![CDATA[ and fr.TRADE_DATE_ >= to_char(sysDate,'YYYYMMDD') ]]>
    UNION ALL
    select 
    fc.APP_SNO_ as "oappSno",
    (select SHORT_NAME_ from CMN_FUND where FUND_CODE_ = fc.FUND_CODE_)||'('||fc.FUND_CODE_||')' as "shortName",
    fc.BIZ_FLAG_ as "bizFlag",
    fc.APP_VOL_ as "appVol",
    fc.BRANCH_CODE_ as "branchCode",
    fc.MODIFY_USER_ as "modifyUser",
    fc.CHECK_USER_ as "checkUser"
    from 
    FND_CONVERT fc
    where 
    fc.FINANCE_ACC_ = #{financeAcc}
      <![CDATA[ and fc.TRADE_DATE_ >= to_char(sysDate,'YYYYMMDD') ]]>  

    </select>


这样就查出来了我们想要的列表。

猜你喜欢

转载自blog.csdn.net/weixin_41377877/article/details/80756302