有两个表
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)
还是显示错误!
高手指点一二
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)
还是显示错误!
高手指点一二
from table1 t1,table2 t2
where t1.id=t2.id(+)
group by t1.id
不知是不是取最大次數
from t1,t2
where t1.id=t2.id(+)
group by t1.id,t1.name;
from t1,t2
where t1.id=t2.id
group by t1.id,t1.name;
这样写以后提示:不是group by 表达式
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
谢谢了,你的提示解决了问题,不过子查询中的group by后边不能用t2.ynumber而要用t2.id,否则还是重复的!