Description or Example
# 核心代码
```java
@RequestMapping("/attr/relation/delete")
public R deleteRelation(@RequestBody List<AttrAttrGroupRelationDelVO> attrAttrGroupRelationDelVOS) {
attrGroupService.removeRelation(attrAttrGroupRelationDelVOS);
return R.ok();
}
```
```java
@Override
public void removeBatchRelation(List<AttrAttrGroupRelationDelVO> attrAttrGroupRelationDelVOS) {
relationDao.removeBatchRelation(attrAttrGroupRelationDelVOS);
}
```
```xml
<delete id="removeBatchRelation">
DELETE FROM pms_attr_attrgroup_relation
<foreach collection="vos" item="vo" separator="OR" open="WHERE">
(#{vo.attrId} = attr_id AND #{vo.attrGroupId} = attr_group_id)
</foreach>
</delete>
```
# 拓展知识
## 动态拼接SQl的时候为什么不用IN
> 这回联想到有些弹幕说, 哎呀IN更好啦, 但是纯属是放屁, IN会有一个致命的问题, 就是属性和属性分组不能很好的绑定在一个and条件中, 机如果是删除1与2 3与4, 一旦使用IN, 可能删掉1与4, 因此不能用IN