欢迎大家提供意见, 这篇文章会不断更新,大家在使用mysql中,遇到什么问题,然后怎么解决的,欢迎留言。。。
1. in, not in, exist, not exist:
- 作用: 两者的作用是一致的, 都是得到子查询中的数据,然后,判断当前表中的数据是否在子查询中存在或不存在。
- 区别:
- in和not in对于子查询返回的数据, 存在null值是无法得到数据的。而使用exist,则可以获取到数据。应该是mysql内部源码实现的不一样。
- in和not in 是在外部表上进行where field判断,而exist则是在子查询的where进行比对。
- eg: ```
SELECT rw.WELD_ID
FROM pmc_pm_rewsheet_weld rw
WHERE NOT EXISTS ( SELECT er.REPAIR_ID
FROM pmc_pm_entrust_repair_weld er
WHERE er.REPAIR_ID = rw.WELD_REPAIR_SHEET_ID // 在子查询中, 进行判断
)
)