left join给左表加筛选条件,拼接sql

本文介绍了如何通过拼接stringBuffer实现SQL查询,并通过设置条件来屏蔽左表中deleted为1的数据。具体步骤包括条件字符串的拼接、不同筛选条件的应用以及最终SQL执行语句的生成。
部署运行你感兴趣的模型镜像

left join 就是无论on中的条件如何都会选出左表的数据,如果要屏蔽左表的一条数据,比如屏蔽左表deleted=1的数据怎么办?

这个问题可以通过拼接stringBuffer来实现。如下,需要注意的是需要给子查询起一个名字,不然就会报错Every derived table must have its own alias。

StringBuffer sql = new StringBuffer();//拼接条件sql
		StringBuffer exeSql = new StringBuffer();//执行sql
		sql.append("select leave_note.id,"			//假条id
				+ " stu.stu_name,"						//请假人姓名
				+ " content,"							//请假原因描述
				+ " type_code,"							//假条类型码(事假/病假)
				+ " leave_note.deleted,"							
				+ " code1.value type_value,"				//假条类型值
				+ " leave_note.add_time"  				//假条提交时间
				+ " from stu_leave_note leave_note"  	//假条表
				+ " left join stu_information stu on leave_note.stu_id=stu.id"  //学生信息表
				+ " left join code code1 on code1.code=leave_note.type_code and code1.type='leave_note_type'");
		//增加假条状态筛选
		if(status_code.equals("checked")){
			sql.append(" and leave_note.status_code='leave_note_status002' or leave_note.status_code='leave_note_status003'");
		}else{
			sql.append(" and leave_note.status_code='leave_note_status001' ");
		}
		//增加用户筛选
		if(user_type_code.equals("user002")){
			sql.append(" and leave_note.tea_id=? ");
		}else{
			sql.append(" and leave_note.stu_id=? ");
		}
		
		exeSql.append("select leave_list.id,"			//假条id
				+ " stu_name,"						//请假人姓名
				+ " content,"							//请假原因描述
				+ " type_code,"							//假条类型码(事假/病假)
				+ " leave_list.deleted,"							
				+ " type_value,"				//假条类型值
				+ " leave_list.add_time from("+sql
				+ " ) as leave_list where leave_list.deleted=0");  				//假条提交时间


您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值