两个表,表A 字段1 字段2 , 表B 字段11 字段22 字段33
现在我要把表B的字段33拿出来和表A结合,返回一个新表 字段1 字段2 字段33
就是说把select 字段33 from 表B 和 select * from 表A 这条语句返回的结果合并到一起。明白我的意思了吗,希望最好用一条sql 语句完成,谢谢
两个表,表A 字段1 字段2 , 表B 字段11 字段22 字段33
现在我要把表B的字段33拿出来和表A结合,返回一个新表 字段1 字段2 字段33
就是说把select 字段33 from 表B 和 select * from 表A 这条语句返回的结果合并到一起。明白我的意思了吗,希望最好用一条sql 语句完成,谢谢
select A.*,(select B.33 from B) from A 。
如果表A和表B记录不一样多,就会有问题。。。
一般用left join , inner join , right join 的,但是需要知道表A和表B的关系
--> 测试数据:[ta] if object_id('[ta]') is not null drop table [ta] create table [ta]([id] int,[name] varchar(1)) insert [ta] select 1,'a' union all select 2,'b' union all select 3,'c' union all select 4,'d' union all select 5,'e' union all select 6,'f'
select * from [ta] --> 测试数据:[tb] if object_id('[tb]') is not null drop table [tb] create table [tb](id int ,[value] varchar(2)) insert [tb] select 1,'mm' union all select 2,'nn' union all select 3,'bb' union all select 7,'vv' union all select 8,'kk' union all select 9,'gg'
select ta.*,tb.[value] from ta,tb where ta.id=tb.id
select ta.*,tb.[value] from ta left join tb on ta.id=tb.id select ta.*,tb.[value] from ta right join tb on ta.id=tb.id
select ta.*,tb.[value] from ta full join tb on ta.id=tb.id
--如果要修改a表是变为三列
select * into # from ( select ta.*,tb.[value] from ta,tb where ta.id=tb.id--上面的任意一个sql语句 ) t
drop table ta
select * into ta from #
drop table #
select * from ta
假设表A中的字段1的外键是表B中的字段22,那么要得到两张相关连的表的SQL语句为:
select [表A].[字段1],[表A].[字段2],[表B].[字段11],[表B].[字段33] from [表A] inner join [表B] on [表A].[字段1]=[表B].[字段22]
前提就是错的,两个表如果行数不一样怎么办,表a的行和表b的行按照什么规律合并也没有
1 1 1
2 1 2
3 1 3
1 1 3
2 1 2
3 1 1