双表联合查询,一次得到最后结果的SQL语句怎么写?
表1 :
A 北京
B 重庆
C 上海
表2 :
1 A
2 B
3 A
4 C
5 C
先在表2中查询,
结果:
A 出现2次
B 出现1次
C 出现2次
再做一次查询,替换城市代码,最后结果是这样:
北京 出现2次
重庆 出现1次
上海 出现2次
一次得到最后结果的SQL语句怎么写?
谢谢。
[解决办法]
SELECT A.NAME,COUNT(B.ID) AS 次数 FROM T1 A,T2 B WHERE A.ID=B.ID GROUP BY A.NAME
[解决办法]
- SQL code
declare @表1 table (col varchar(1),name varchar(4))insert into @表1select 'a','北京' union allselect 'b','重庆' union allselect 'c','上海'declare @表2 table (id int,col varchar(1))insert into @表2select 1,'a' union allselect 2,'b' union allselect 3,'a' union allselect 4,'c' union allselect 5,'c'select distinct b.name,次数='出现'+ltrim((select count(1) from @表2 where col=a.col))+'次' from @表2 a left join @表1 b on a.col=b.col/*name 次数---- ------------------北京 出现2次上海 出现2次重庆 出现1次*/
[解决办法]
- SQL code
create table T1 (col varchar(1),name varchar(4))insert into T1 select 'a','北京' union allselect 'b','重庆' union allselect 'c','上海'create table T2 (id int,col varchar(1))insert into T2select 1,'a' union allselect 2,'b' union allselect 3,'a' union allselect 4,'c' union allselect 5,'c'select T1.[name],'出现'+convert(varchar(10),count(1))+'次'from T1,T2 where T1.col=t2.colgroup by T1.[name]
[解决办法]
[解决办法]
- SQL code
create table 表1 (col varchar(1),name varchar(4))insert into 表1 select 'a','北京' union allselect 'b','重庆' union allselect 'c','上海'create table 表2 (id int,col varchar(1))insert into 表2select 1,'a' union allselect 2,'b' union allselect 3,'a' union allselect 4,'c' union allselect 5,'c'select a.name,'出现'+cast(count(*) as varchar(5))+'次' as 次数 from 表1 a join 表2 b on a.col=b.col group by a.name 结果为:name 次数北京 出现2次上海 出现2次重庆 出现1次(3 行受影响)