SELECT tab1.val from
<foreach collection="list" index="index" item="item" open="(" separator="union" close=")">
select #{item.dormUserPin} as val
</foreach>
tab1
WHERE tab1.val not in (select hu.pin from hr_userinfo hu)
注意到没有,其实就是简单的拼接 用的union 记录一下;
(2)这个也需要记录一下 用来卡权限的
SELECT COUNT(1)
from hr_userinfo hu
JOIN dorm_user_info dui on dui.dorm_user_pin = hu.pin
JOIN dorm_structure ds on ds.dorm_id =dui.dorm_structure_id
where hu.pin in(SELECT dorm_user_pin FROM dorm_user_info)
<if test="dorm_structure_id!=null and dorm_structure_id!=''">
and (dui.dorm_structure_id=#{dorm_structure_id} or dui.dorm_structure_id in
(select ds1.dorm_id from dorm_structure ds1 where ds1.dorm_parent_id = #{dorm_structure_id}))
</if>
<if test="name!=null and name!=''">
and hu.`name` like CONCAT('%','#{name}','%')
</if>
<if test="pin!=null and pin!=''">
and hu.pin=#{pin}
</if>
<if test="userName !=null and userName !=''">
and dui.dorm_user_dept_id in (select hd.dept_id from hr_dept hd
join sys_role_dept srd on hd.dept_id = srd.dept_id
join sys_role sr on srd.sys_role_id = sr.id
join sys_user_role sur on sr.id = sur.sys_role_id
join sys_user su on sur.sys_user_id = su.id
where su.name = #{userName})
</if>