将SQL查询出来的数据作为一个张“表",之后根据这张“表”在进行条件查询。



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>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值