好贷网好贷款

如何将两个没有关系的表拼在一起 20分,无满意结帖,结帖人xin36933]

发布时间:2016-12-3 23:56:09 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"如何将两个没有关系的表拼在一起 20分,无满意结帖,结帖人xin36933]",主要涉及到如何将两个没有关系的表拼在一起 20分,无满意结帖,结帖人xin36933]方面的内容,对于如何将两个没有关系的表拼在一起 20分,无满意结帖,结帖人xin36933]感兴趣的同学可以参考一下。

如何将两个没有关系的表拼在一起 a表 id1 f1 f2 f3 1  a  b  c 2  d  e  f b表 id2 f4 f5 f6 1  a2  b2  c2 2  d2  e2  f2 3  g2  h2  i2 4  w2  r2  t2 ab两表拼成c表 c表 id1   f1    f2   f3 id2 f4 f5 f6 1     a     b    c  1  a2  b2  c2 2     d     e    f  2  d2  e2  f2 null null null null 3  g2  h2  i2 null null null null 4  w2  r2  t2 sql 怎么写

select    * from   a full join    b on   a.id1=b.id2

---测试数据--- if object_id('[a]') is not null drop table [a] go create table [a]([id1] int,[f1] varchar(1),[f2] varchar(1),[f3] varchar(1)) insert [a] select 1,'a','b','c' union all select 2,'d','e','f' if object_id('[b]') is not null drop table [b] go create table [b]([id2] int,[f4] varchar(2),[f5] varchar(2),[f6] varchar(2)) insert [b] select 1,'a2','b2','c2' union all select 2,'d2','e2','f2' union all select 3,'g2','h2','i2' union all select 4,'w2','r2','t2'   ---查询--- select    * from   a full join    b on   a.id1=b.id2 ---结果--- id1         f1   f2   f3   id2         f4   f5   f6    ----------- ---- ---- ---- ----------- ---- ---- ----  1           a    b    c    1           a2   b2   c2 2           d    e    f    2           d2   e2   f2 NULL        NULL NULL NULL 3           g2   h2   i2 NULL        NULL NULL NULL 4           w2   r2   t2 (所影响的行数为 4 行)

full join 

full join

---测试数据--- declare @a table ([id1] int,[f1] varchar(1),[f2] varchar(1),[f3] varchar(1)) insert @a select 1,'a','b','c' union all select 2,'d','e','f' declare @b table ([id2] int,[f4] varchar(2),[f5] varchar(2),[f6] varchar(2)) insert @b select 1,'a2','b2','c2' union all select 2,'d2','e2','f2' union all select 3,'g2','h2','i2' union all select 4,'w2','r2','t2' --右连接 select * from @a a right join @b b on a.id1=b.id2 --全连接 select * from @a a FULL join @b b on a.id1=b.id2

即便是我和一个完全不懂数据库的外行解释,他们也都能理解两个没有关系的表是不应该合并起来的.你是在用数据库不是excel或者普通表格.数据库表没有cell的概念.如果确实要这样显示那也是程序的事情

引用 6 楼 jinjazz 的回复:即便是我和一个完全不懂数据库的外行解释,他们也都能理解两个没有关系的表是不应该合并起来的.你是在用数据库不是excel或者普通表格.数据库表没有cell的概念.如果确实要这样显示那也是程序的事情 说得好。数据库做自己的事情

FULL JOIN 

如果只是想显示成你要得样子,不用sql语句也能做。

引用 6 楼 jinjazz 的回复:即便是我和一个完全不懂数据库的外行解释,他们也都能理解两个没有关系的表是不应该合并起来的.你是在用数据库不是excel或者普通表格.数据库表没有cell的概念.如果确实要这样显示那也是程序的事情 支持!

FULL JOIN 得到的是迪卡尔积 

两张表没关联 那就是两张不同性质的表 所以没必要连起来

引用 11 楼 fredrickhu 的回复:FULL JOIN 得到的是迪卡尔积 cross join 得到的是笛卡尔积

full join~~

if object_id('[a]') is not null drop table [a] go create table [a]([id1] int,[f1] varchar(1),[f2] varchar(1),[f3] varchar(1)) insert [a] select 1,'a','b','c' union all select 2,'d','e','f' if object_id('[b]') is not null drop table [b] go create table [b]([id2] int,[f4] varchar(2),[f5] varchar(2),[f6] varchar(2)) insert [b] select 1,'a2','b2','c2' union all select 2,'d2','e2','f2' union all select 3,'g2','h2','i2' union all select 4,'w2','r2','t2' select a.*,b.* from a right join b on a.id1=b.id2

回答 full join 的人你们走大脑没,自己很高吗,join到一起的还能是4条吗,还有问问题的人, 你走大脑了没

哈哈,学习

引用 16 楼 lyp8468739 的回复:回答 full join 的人你们走大脑没,自己很高吗,join到一起的还能是4条吗,还有问问题的人, 你走大脑了没.....

合并行用union,合并列用join. 楼主的情况可以用left join or right join

用Right JOIN就可以啊

引用 16 楼 lyp8468739 的回复:回答 full join 的人你们走大脑没,自己很高吗,join到一起的还能是4条吗,还有问问题的人, 你走大脑了没 支持,大家都没有看题,因为看到第一列相同就这样猜题,唉

join

那么多回复!不好意思,好久没看了

当时只是想让程序简单化,就用一个视图表进行查询 问题已经解决了 select * from a left join b on a.id1=b.id2 c表 id1   f1    f2   f3 id2 f4 f5 f6 1     a     b    c  null null null null 2     d     e    f  null null null null null null null null 1  a2  b2  c2 null null null null 2  d2  e2  f2 null null null null 3  g2  h2  i2 null null null null 4  w2  r2  t2 程序在对这个表进行过滤

全连接

引用 21 楼 meekiki 的回复:引用 16 楼 lyp8468739 的回复:  回答 full join 的人你们走大脑没,自己很高吗,join到一起的还能是4条吗,还有问问题的人,  你走大脑了没  支持,大家都没有看题,因为看到第一列相同就这样猜题,唉 full join怎么不是4条?!

上一篇:处理一个挖掘结构 时出现的问题 100fredrickhu]
下一篇:帮忙优化SQL语句 5fredrickhu]

相关文章

相关评论