输出结果只有唯一一条,corp表是有上百万条记录,那应该用分开的吗??这里人气好象不怎么样,哪位大大能帮忙啊??非常感谢!

解决方案 »

  1.   

    我觉得:
    速度应该一样
    因为在JOIN之间,左表先WHERE,只取一条记录,再JOIN.如果把CORP表放在右边,那速度会很慢
      

  2.   

    主要是做jion操作时,表的关联操作次数是A表记录数X条与B表记录数Y条的乘积,所以拆开有好处,但只局限小结果集
      

  3.   

    我觉得可以这么考虑,不管用什么方法,首先要了解条件的被使用顺序,然后分析每个条件产生的结果集,根据所有的结果集分析mysql的操作次数,如果次数差不多,一般应用层应该使用较少的sql语句!例如:
    select a.col2, b.col2, c.col2 from a left join b on b.col1=a.col1 left join c on c.col1=a.col1 where a.col1='1'
    条件顺序依次为a.col1='1'(结果集为A), b.col1=a.col1(结果集为B), c.col1=a.col1(结果集为C),则操作次数为A×B+A×C,这对于分开3个语句来实现也是一样,所以应用层选择怎么做,就看应用层的开发方便而言了