sql将两个查询结果拼接到一块,去掉重复,动态sql

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.meeting.mapper.MeetingMapper">

    <delete id="deleteMeeting">
        delete from blade_meeting where meeting_code=#{meetingCode}
    </delete>
    <select id="getMeetingList" parameterType="org.springblade.desk.meeting.entity.MeetingEntity" resultType="org.springblade.desk.meeting.entity.MeetingEntity">
        select * from blade_meeting where tenant_id=#{tenantId}
        <if test="meetingDate != null and meetingDate !=''">
            and  meeting_date=#{meetingDate}
        </if>
        <if test="startTime != null and startTime !='' or endTime != null and endTime !=''">
            and (
            ( concat(`meeting_date`,' ',`start_time`)&lt;=#{startTime} and #{startTime}&lt; concat(`meeting_date`,' ',`end_time`))  or
            (concat(`meeting_date`,' ',`start_time`)&lt;=#{endTime} and #{endTime} &lt; concat(`meeting_date`,' ',`end_time`))

            )
        </if>
        <if test="months != null and months !='' ">
            and (meeting_date like '%%${months}%%')
        </if>
        <if test="meetingAddress != null and meetingAddress !=''">
            and meeting_address =#{meetingAddress}
        </if>

    </select>
    <select id="getMyJoinMeetingPage"  resultType="org.springblade.desk.meeting.entity.MeetingEntity">
        select * from (select a.* from blade_meeting a left join blade_meeting_person b on a.meeting_code=b.meeting_code
        where b.join_person_code=#{joinPersonCode}
        UNION
        select * from blade_meeting
        where meeting_launch_person_code=#{joinPersonCode}) t
        <where>
            <if test="meetingName != null">
                (meeting_name like '%%${meetingName}%%')
            </if>
            <if test="meetingDate != null">
                and (meeting_date like '%%${meetingDate}%%')
            </if>
            <if test="endDate != null and endDate !='' ">
                and meeting_date &lt;= #{endDate}
            </if>
            <if test="noEndDate != null and noEndDate !='' ">
                and meeting_date &gt;= #{noEndDate}
            </if>
            <if test="noEndTime != null and noEndTime !='' ">
                and concat(`meeting_date`,' ',`end_time`) &gt; #{noEndTime}
            </if>
            <if test="endTime != null and endTime !='' ">
                and concat(`meeting_date`,' ',`end_time`) &lt; #{endTime}
            </if>
        </where>
        order by meeting_date desc
    </select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.meeting.mapper.MeetingMapper">

    <delete id="deleteMeeting">
        delete from blade_meeting where meeting_code=#{meetingCode}
    </delete>
    <select id="getMeetingList" parameterType="org.springblade.desk.meeting.entity.MeetingEntity" resultType="org.springblade.desk.meeting.entity.MeetingEntity">
        select * from blade_meeting where tenant_id=#{tenantId}
        <if test="meetingDate != null and meetingDate !=''">
            and  meeting_date=#{meetingDate}
        </if>
        <if test="startTime != null and startTime !='' or endTime != null and endTime !=''">
            and ( (#{startTime} between concat(`meeting_date`,' ',`start_time`) and concat(`meeting_date`,' ',`end_time`))  or
                (#{endTime} between concat(`meeting_date`,' ',`start_time`) and concat(`meeting_date`,' ',`end_time`))
            )
        </if>
        <if test="months != null and months !='' ">
            and (meeting_date like '%%${months}%%')
        </if>
        <if test="meetingAddress != null and meetingAddress !=''">
            and meeting_address =#{meetingAddress}
        </if>

    </select>
    <select id="getMyJoinMeetingPage"  resultType="org.springblade.desk.meeting.entity.MeetingEntity">
        select * from (select a.* from blade_meeting a left join blade_meeting_person b on a.meeting_code=b.meeting_code
        where b.join_person_code=#{joinPersonCode}
        UNION
        select * from blade_meeting
        where meeting_launch_person_code=#{joinPersonCode}) t
        <where>
            <if test="meetingName != null">
                (meeting_name like '%%${meetingName}%%')
            </if>
            <if test="meetingDate != null">
                and (meeting_date like '%%${meetingDate}%%')
            </if>
            <if test="endDate != null and endDate !='' ">
                and meeting_date &lt;= #{endDate}
            </if>
            <if test="noEndDate != null and noEndDate !='' ">
                and meeting_date &gt;= #{noEndDate}
            </if>
            <if test="noEndTime != null and noEndTime !='' ">
                and concat(`meeting_date`,' ',`end_time`) &gt; #{noEndTime}
            </if>
            <if test="endTime != null and endTime !='' ">
                and concat(`meeting_date`,' ',`end_time`) &lt; #{endTime}
            </if>
        </where>
        order by meeting_date desc
    </select>
</mapper>
<select id="getMyJoinMeetingPage"  resultType="org.springblade.desk.meeting.entity.MeetingEntity">
        select * from (select a.* from blade_meeting a left join blade_meeting_person b on a.meeting_code=b.meeting_code
        where b.join_person_code=#{joinPersonCode}
        UNION
        select * from blade_meeting
        where meeting_launch_person_code=#{joinPersonCode}) t
        <where>
            <if test="meetingName != null">
                (meeting_name like '%%${meetingName}%%')
            </if>
            <if test="meetingDate != null">
                and (meeting_date like '%%${meetingDate}%%')
            </if>
            <if test="endDate != null and endDate !='' ">
                and meeting_date &lt;= #{endDate}
            </if>
            <if test="noEndDate != null and noEndDate !='' ">
                and meeting_date &gt;= #{noEndDate}
            </if>
            <if test="noEndTime != null and noEndTime !='' ">
                and concat(`meeting_date`,' ',`end_time`) &gt; #{noEndTime}
            </if>
            <if test="endTime != null and endTime !='' ">
                and concat(`meeting_date`,' ',`end_time`) &lt; #{endTime}
            </if>

        </where>
    </select>
//
concat(`meeting_date`,' ',`end_time`)将两个字段拼接到一块
原文地址:https://www.cnblogs.com/xianz666/p/13601194.html