SQL语句演变一:
SELECT tA.a_code, tA.b_code, tA.c_code, tA.a_name, tA.a_time,
tB.b_clazz, tC.c_model, tD.d_good
FROM TableA tA
LEFT JOIN TableB tB ON tA.a_code = tB.a_code
LEFT JOIN TableC tC ON tA.b_code = tC.b_code
LEFT JOIN TableD tD ON tA.c_code = tD.c_code
SQL语句演变二:
SELECT Tab.a_code, Tab.b_code, Tab.c_code, Tab.a_name, Tab.a_time, Tab.b_clazz, Tab.c_model, Tab.d_good
FROM
(SELECT tA.a_code, tA.b_code, tA.c_code, tA.a_name, tA.a_time,
tB.b_clazz, tC.c_model, tD.d_good
FROM TableA tA
LEFT JOIN TableB tB ON tA.a_code = tB.a_code
LEFT JOIN TableC tC ON tA.b_code = tC.b_code
LEFT JOIN TableD tD ON tA.c_code = tD.c_code) Tab
SQL语句演变三:
Mybatis中的动态sql,条件查询,模糊匹配。
<select id="findMsg" resultMap="某一实体类对应的mapper.xml映射名">
SELECT Tab.a_code, Tab.b_code, Tab.c_code, Tab.a_name, Tab.a_time, Tab.b_clazz, Tab.c_model, Tab.d_good
FROM
(SELECT tA.a_code, tA.b_code, tA.c_code, tA.a_name, tA.a_time,
tB.b_clazz, tC.c_model, tD.d_good
FROM TableA tA
LEFT JOIN TableB tB ON tA.a_code = tB.a_code
LEFT JOIN TableC tC ON tA.b_code = tC.b_code
LEFT JOIN TableD tD ON tA.c_code = tD.c_code) Tab
<where>
<if test=" a_code != '' and a_code != null ">
Tab.a_code LIKE CONCAT('%', #{a_code}, '%')
</if>
<if test=" b_code != '' and b_code != null ">
AND Tab.b_code LIKE CONCAT('%', #{b_code}, '%')
</if>
<if test=" c_model !='' and c_model != null ">
AND Tab.c_model LIKE CONCAT('%', #{c_model}, '%')
</if>
<where>
</select>