首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

散分了!一个简单的多表查询的有关问题

2011-12-19 
散分了!一个简单的多表查询的问题!有两个表table1idname1001刘德华1002张学友1003周润发1004刘若英......t

散分了!一个简单的多表查询的问题!
有两个表
      table1  
    id         name    
  1001     刘德华
  1002     张学友
  1003     周润发
  1004     刘若英
    ......

        table2
    id         ynumber(开演唱会的次数)       addrss
  1001               1                                             北京
  1001               2                                             上海
  1002               1                                             天津
  1003               1                                             香港
  1003               2                                             台湾
  1001               3                                             纽约

现在要用一条select   语句查询出每个人开演唱会的次数,最终结果为:

      id             name             ynumber
    1001           刘德华               3
    1002           张学友               1
    1003           周润发               2
    1004           刘若英               0
我写的:
  select   t1.id,t1.name,t2.ynumber   from   table1   t1,table2   t2   where   t1.id=t2.id(+)
结果查询出来的记录都是两、三条重复的     用:
  select   t1.id,t1.name,t2.ynumber   from   table1   t1,table2   t2   where   t1.id=t2.id(+)   and   in   (select   max(t3.ynumber)   from   table2   t3   where   t1.id=t3.id)  
还是显示错误!
高手指点一二

[解决办法]
select id,max(name),max(nvl(yumber,0))
from table1 t1,table2 t2
where t1.id=t2.id(+)
group by t1.id
不知是不是取最大次數
[解决办法]
select t1.id,t1.name,nvl(sum(t2.ynumber),0)
from t1,t2
where t1.id=t2.id(+)
group by t1.id,t1.name;
[解决办法]
select t1.id,t1.name,max(t2.ynumber)
from t1,t2
where t1.id=t2.id
group by t1.id,t1.name;
[解决办法]
select t1.name,
t.maxynumber
from t1,(select t2.id,max(t2.ynumber) as maxynumber from t2 group by t2.ynumber) t


where t1.id=t.id

你的t1在from后面,但是你在select中用了t1

热点排行