3张表如下:
    table A,有字段id,x, 数据100万
    table B,有字段id,y, 数据200万
    table C,有字段id,z, 数据300万要求:
    1. 写出查询出3张表数据的所有SQL
    2. 说出其中最有效率的sql,为什么?

解决方案 »

  1.   

    写出查询出3张表数据的所有SQL-- 无法所有:有无穷无尽的!-- 关键是你想让你的数据怎么排放?其格式是什么?先:明白你想要的数据格式是什么样滴!别人才能干活!
      

  2.   

      table A,有字段id,x, 数据100万
      table B,有字段id,y, 数据200万
      table C,有字段id,z, 数据300万
    select * from c,b,a where c.id = b.id and c.id = a.id
      

  3.   

    ---具体哪个效率高还得看执行计划
    select * from a,b,c 
    where a.id=b.id and c.id=a.id
      

  4.   


    1.ORACLE表扫描是从右向左;
    2.oracle条件扫描是从下向上;
      

  5.   

    3张表如下:
      table A,有字段id,x, 数据100万
      table B,有字段id,y, 数据200万
      table C,有字段id,z, 数据300万要求:
      1. 写出查询出3张表数据的所有SQL
      2. 说出其中最有效率的sql,为什么?-- 要查询所有的数据,要连接表的话,至少也得用full join 吧?
    with ab as(select nvl(a.id,b.id) as id, a.x, b.y
                from a full join b on a.id=b.id)
    select nvl(ab.id,c.id) as id, ab.x, ab.y, c.z
    from ab full join c on ab.id=c.id;
      

  6.   

    用union all 吧!我猜的!
      

  7.   

    SQL Select语句完整的执行顺序: 
    1、from子句组装来自不同数据源的数据; 
    2、where子句基于指定的条件对记录行进行筛选; 
    3、group by子句将数据划分为多个分组; 
    4、使用聚集函数进行计算; 
    5、使用having子句筛选分组; 
    6、计算所有的表达式; 
    7、使用order by对结果集进行排序。