不同的数据导入方式,同一查询语句,结果顺序不同
表A (Key:id,tid)           表B(Key:id)
id tid name       id   place
1   a   a          1    xx
2   b   b          2    yy
1   c   c          3    zz 
3   d   d同一dump文件,user权限,方式一:createDB(建表)
        导入dump文件
方式二:直接导入dump文件同一查询语句 
select a.*,b.place from A a left join B b on a.id = b.id 
方式一结果:
id  tid name place           
1   a   a    xx           
1   c   c    xx
2   b   b    yy
3   d   d    zz方式二结果:
id  tid name place           
1   a   a    xx           
2   b   b    yy
1   c   c    xx
3   d   d    zz请问大虾们为什么会这样?急!!!

解决方案 »

  1.   

    方式一的结果应该是正常的
    on a.id = b.id 应该是默认的排序循序?
      

  2.   

    方式一的结果应该是正常的
    on a.id = b.id 应该是默认的排序循序? 
    不是
    表B 的b.id 的原始排序顺序 才应该是首次排序依据
    表A 的a.id 的原始排序倒序 应该是下次排序依据晕,还没打完就发了一次
      

  3.   

    要不这样再试一次:把这几条纪录使用insert into 到表中,然后再执行select 这样我觉得就可以验证你的结果是否合理了。
      

  4.   

    createDB与load方式后, 表的index不一样, 导致差异
      

  5.   

    感谢大虾们的参与,但是
    两种方式DB的数据的保存顺序是相同的。
    表的index,表空间都一样。
    还能是什么问题导致两个不同结果呢?
      

  6.   

    这个感觉正常啊,要关注排序还是最好加少order by
      

  7.   

    显然,如果其他都是一样的,同样的sql文检索出的数据不可能不一致
    用这两种方式导入的数据是否有微妙的差别
    这个不是很清楚
    LZ可以尝试再重新造两组数据
    1组规则排序,2组不规则排序
    再次用两种方式插入数据
    假设:1组的检索结果一致 而2组的不一致
    那么应该是两种插入数据的方式的差别
    具体原因再去查相关资料吧
      

  8.   

    用hint强制指定index后看结果是否一样