有一点不懂
例如下面sql,有2个join
select * from admin a join rolespower b on a.id = b.id join function c on b.f_id = c.f_id
顺序是:
select * from admin a join rolespower b on a.id = b.id join function c on b.f_id = c.f_id
还是:
select * from admin a join rolespower b on a.id = b.id join function c on b.f_id = c.f_id
红色为先执行的。

解决方案 »

  1.   

    如果有where字句,也可能改变连接的次序,一般哪个表的where条件执行效率高(已经考虑数据量和索引),先执行这个表的筛选,自然跟这个表的连接也会先执行。具体的可以看执行计划,ctrl+L
      

  2.   

    第一步:a join rolespower b on a.id = b.id 生成一个临时表
    第二步:临时表和function c on b.f_id = c.f_id 链接,生成临时表
    第三步:查询临时表一些SQL的知识
      

  3.   

    你这个表的话 rolespower 表放在最后面
    桥表