散分了!一个简单的多表查询的问题!
有两个表
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 maxyn