日期:2014-05-18 浏览次数:20566 次
create table A(id varchar(10))
insert into A values('1') 
insert into A values('2')
insert into A values('3') 
create table B(id varchar(10))
insert into B values('a') 
insert into B values('b') 
insert into B values('c') 
go
select a.id + ',' + b.id 'col' from a cross join b order by col
drop table A,B
/*
col                   
--------------------- 
1,a
1,b
1,c
2,a
2,b
2,c
3,a
3,b
3,c
(所影响的行数为 9 行)
*/
------解决方案--------------------
--如果A的ID为INT型,转化一下.
create table A(id int)
insert into A values(1) 
insert into A values(2)
insert into A values(3) 
create table B(id varchar(10))
insert into B values('a') 
insert into B values('b') 
insert into B values('c') 
go
select cast(a.id as varchar) + ',' + b.id 'col' from a cross join b order by col
drop table A,B
/*
col                   
--------------------- 
1,a
1,b
1,c
2,a
2,b
2,c
3,a
3,b
3,c
(所影响的行数为 9 行)
*/
------解决方案--------------------
cross join 
没错 同意
------解决方案--------------------
想得到的结果是:
	tableA “乘以” tableB
即笛卡积,是Codd对于关系数据库给出的8个关系操作之一。
SQL实现:cross join
select * from tableA cross join tableB
------解决方案--------------------
select A.id,B.ID from Table A full join TableB B on 1=1