碰到个问题,两个select语句,都是多表查询,还有查询条件,分别执行,返回的都是空,
但是用union连接两个select语句,再整个执行,返回居然有数据!!!!!惊呆了
最后定位到的问题是因为select语句中用了 join on and 这种语法,连接后面跟and,and后面的条件是在两个表关联之前对数据进行过滤,where是在关联后过滤。
具体原因不明,个人推测是因为用了and ,又用了union,导致and的过滤是在两个select结果集union之前进行的,所以没有正确的返回结果。
很蛋疼,总之就是尽量别用 join on and 这种语法,而是把条件都写在where后面。