求助sql语句,多个join嵌套

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助sql语句,多个join嵌套相关的知识,希望对你有一定的参考价值。

有两张表A和B,表A为贷款台账,有借据编号(TARG_NO)、客户号(CUST_NO)、贷款起始日(START_DATE)这几个字段;表B为客户台账,有客户号(CUST_NO)、证件号(PBK_NUM)两个字段(见图)。注:一个客户存在多笔贷款,客户号的值不统一,有的为客户号,有的实际是客户的证件号码。现希望查询客户在表A中最早的那一笔贷款的所有信息。需要先把客户的证件号(PBK_NUM)加入至表A中,再通过(PBK_NUM)找出该客户日期最早的一笔贷款,得到借据编号(TARG_NO),列出每个客户首笔贷款在表A中的所有字段。万分感谢!

参考技术A BSEG 是cluster table(簇表),不能做 inner joint 或者 left join/right join你可以分开做两次查询 BKPF 和 BSEG ,这样就没问题了不过要注意效率,呵呵

多个left join结合动态sql的代码语句

    <sql id="unionColumns">
        b.id AS id
        , b.gmt_create AS gmtCreate
        , b.gmt_modified AS gmtModified
        , b.corp_id AS corpId
        , b.corp_name AS corpName
    </sql>

    <sql id="baseColumns">
        b.id,
        b.gmt_create,
        b.gmt_modified,
        b.corp_id,
        b.corp_name,
        e.assign_time,
    </sql>


    <sql id="Where_CorpDeploy">
        <if test="corpId != null">
            and b.corp_id = #{corpId}
        </if>
        <if test="corpName != null">
            and b.corp_name LIKE concat('%',#{corpName},'%')
        </if>
    </sql>


    <sql id="limitSql">
        limit
        <if test="pageNo > 0">
            #{start},
        </if>
        <if test="pageNo=0">0,</if>
        #{pageSize}
    </sql>


    <select id="xxxDeployDO" resultType="xxx.DeployDO"
            parameterType="xxx.Query">
        SELECT
        <include refid="unionColumns"/>
        FROM (
            SELECT
            <include refid="baseColumns"/>
            FROM corp_deploy_info b
            left join corp_deploy_assign e
            on e.id = b.deploy_assign_id
            left join corp_gmv c
            on b.corp_id = c.corp_id
            WHERE 1 = 1
            <include refid="Where_CorpDeploy"/>
            <include refid="limitSql"/>
        )b
        left join corp_gmv c
        on b.corp_id = c.corp_id
    </select>

以上是关于求助sql语句,多个join嵌套的主要内容,如果未能解决你的问题,请参考以下文章

数据库的SQL语句中,嵌套查询和连接查询有啥区别,说的详细的

求助,select多个字段赋值给多个变量,怎么写sql语句

登录DAO sql语句涉及多个join

SQL语句如何使用join?

求SQL语句里面join的用法,求例子及讲解。

多个left join结合动态sql的代码语句