日期:2014-05-18 浏览次数:20467 次
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