有两张表
A                       B   num 1  2   3           name   2   3
   12                     a
   12                     b
   15                     c
   16                     a
这两张表有个主外键ID
我两张表联表查询,通过grup by a.num把重复的a.num去掉,可是这样我就取不到B.name
因为没有集合函数用,如果用两条sql速度就会很慢.
新手,请大家帮帮帮,看怎么查询好!

解决方案 »

  1.   

    首先楼主表结构描述很不清楚
    还有标题写gruppo by,描述写grup by
    都不是正确的写法group by自己推测
    过滤重复,直接distinct
    select distinct a.num,b.name
    from a,b
    where a.id=b.id要去聚合函数
    select a.num,b.name,聚合函数
    from a,b
    where a.id=b.id
    group by a.num,b.name
      

  2.   

    首先楼主表结构描述很不清楚
    还有标题写gruppo by,描述写grup by
    都不是正确的写法group by自己推测
    过滤重复,直接distinct
    select distinct a.num,b.name
    from a,b
    where a.id=b.id要去聚合函数
    select a.num,b.name,聚合函数
    from a,b
    where a.id=b.id
    group by a.num,b.name
      

  3.   

    实在看不明白楼主具体的意思.最好给出完整的表结构,测试数据,计算方法和正确结果.发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281否则耽误的是你的时间.
      

  4.   

    这个贴好水!如果你想要sql优化请贴出sql
      

  5.   

    group by 经常和  max ,min ,count(),sum组在一起。中间可能还穿插 decode
      

  6.   

    真是抱歉,谢谢大家了!
    原来group by 后面是可以跟多个列的
      

  7.   

    两张表,去重复,就直接distinct就行.select distinct a.num,b.name from a,b where a.id=b.id(+)