我是初学sql的,还不明白group怎么用
我直接想到的方法是:
select * from tablename
where a=b and a=c and a=d and b=c and b=d and c=d
也作过试验了,也行啊
我想问问,缺点是什么?为什么要用子select?
我问这个问题是不是太傻了?
>>下面的语句如何:
>>select *
>>from tablename,
>> (select a,b,c,d from tablename group by a,b,c,d having count(*) >1) t1
>>where tablename.a=t1.1 and tablename.b=t1.b and tablename.c=t1.c
>> and tablename.d=t1.d
想问问大家,下面这句和icevi的有什么不同?
select *
from tablename inner join
(select a,b,c,d from tablename group by a,b,c,d having count(*) >1) t1
on tablename.a=t1.1 and tablename.b=t1.b and tablename.c=t1.c
and tablename.d=t1.d
select * from tablename join
(select a,b,c,d from tablename group by a,b,c,d having count(*) >1) tt
on tablename.a=tt.a and tablename.b=tt.b and tablename.c=tt.c and tablename.d=tt.d order by 1,2,3,4
select * from tablename join
(select a,b,c,d from tablename group by a,b,c,d having count(*) >1) tt
on tablename.a=tt.a and tablename.b=tt.b and tablename.c=tt.c and tablename.d=tt.d
select * from T1
where convert( char(1), A ) + '!' +
convert( char(1), B ) + '!' +
convert( char(1), C ) + '!' +
convert( char(1), D ) + '!'
in(
select convert( char(1), A ) + '!' +
convert( char(1), B ) + '!' +
convert( char(1), C ) + '!' +
convert( char(1), D ) + '!'
from T1
group by A, B, C, D
having count(*) > 1
)
下面的语句如何:
select *
from tablename,
(select a,b,c,d from tablename group by a,b,c,d having count(*) >1) t1
where tablename.a=t1.1 and tablename.b=t1.b and tablename.c=t1.c
and tablename.d=t1.d