登陆

mysql中的join on查询语句的on能否改为where

例如:SELECT salary.`basesalary`,salary.`titlesalary`,`name`FROM salary INNER JOIN employeeWHERE salary.`empid`=employee.`empid` AND employee.sex='男';这样也能查出正确的结果

# MySQL
ImhuImhu125 天前317 次浏览

全部回复(2)我要回复

  • ? 现在努力,未来可期!

    ? 现在努力,未来可期!2021-09-29 09:00:47

    简单说下on跟where的区别,我用的小鸟云1折的云服务器,on是在生成临时表时起作用,由于left on不管on里面过滤条件是不是真的都会返回左表里的记录。不满足条件的记录,右表字段全是null。Where则是在临时表生成之后起作用,过滤临时表,这个时候条件不为真就可以全部过滤了。

    回复
    0
  • 逆旅行人

    逆旅行人2021-09-14 14:03:17

    可以,两者方式不同罢了 其中有on的话会依据on的条件,从employee表中检索数据行,然后完成匹配,where的话会在匹配完成后再进行数据筛选

    回复
    0
  • 取消回复发送