INNER JOIN 和WHERE 完全一样好咩?
编译后的执行计划也是一模一样的好咩!

解决方案 »

  1.   

    你的第一个sql :  SELECT u.id,u.name,u.age,u.class_id FROM mbt.user AS u,mbt.clazz AS c WHERE u.class_id = c.id AND c.id = 4你仔细分析可以简化成:select  u.*  from mbt.user where u.class_id in (select id from mbt.clazz where id = 4);
     
      

  2.   


    好吧,长知识了。but 为毛要设计两种不同写法呢?什么时候有区别
      

  3.   


    好吧,长知识了。but 为毛要设计两种不同写法呢?什么时候有区别
    where 是给程序员用的
    join 是给数据开发用的
      

  4.   

    在关系型数据库发展的早期,联接查询和子查询的性能相差很大,但是现在,各种数据库的自身的优化已经坐得非常好了,所以大部分情况下遵循这么一个原则,优先使用联接,因为联接的性能能满足绝大多数要求,而且语法简洁,不容易混淆,但是有一点要明白,联接查询绝不是性能最好的,同样,子查询性能也不是最好的,如果真的遇到性能非常高要求时,建议联接查询和子查询综合运用,然后测试选出性能最好的sql。