数据库SQL,将两张表合并为一张表

问题描述

数据库SQL,将两张表合并为一张表

将表table1、table2合并为表table3
table1:
id name value
1 阅读 5
1 视频 7
1 游戏 7
2 阅读 1
2 游戏 3

table2
id name value
1 阅读 8
1 视频 9
1 游戏 2
2 阅读 11
3 视频 4

table3:
id name value1 value2
1 阅读 5 8
1 视频 7 9
1 游戏 7 2
2 阅读 1 11
2 游戏 3 0
3 视频 0 4

解决方案

select case when t1.id is null then t2.id else t1.id end id,
case when t1.name is null then t2.name else t1.name end name,nvl(t1.value,0),nvl(t2.value,0) from t1 FULL join t2 on t1.id=t2.id and t1.name=t2.name

解决方案二:

PLSQL下复制表/将一张表插入另一张表中/连接两张表
两张表关联,根据一张表更新另一张表

解决方案三:

select 字段,字段2,isnull(表1.字段3,0),表2.字段3 from (表1 left join 表2 on 表1.字段=表2.字段 and 表1.字段2=表2.字段2)
不知道你能不能看懂,就是用left join连接两张表用0替换null值

解决方案四:

mysql 环境,full join不支持的时候用左右连接来处理,还是楼上的简单。


INSERT INTO table3

SELECT IFNULL(t1.id,t2.id) id,IFNULL(t1.name,t2.name) NAME,IFNULL(t1.value,'0') value1,IFNULL(t2.value,'0') value2

FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id AND t1.name = t2.name

UNION

SELECT IFNULL(t1.id,t2.id) id,IFNULL(t1.name,t2.name) NAME,IFNULL(t1.value,'0') value1,IFNULL(t2.value,'0') value2

FROM table1 t1 RIGHT JOIN table2 t2 ON t1.id = t2.id AND t1.name = t2.name

时间: 2024-10-29 06:01:53

数据库SQL,将两张表合并为一张表的相关文章

php实现两表合并成新表并且有序排列的方法_php技巧

本文实例讲述了php实现两表合并成新表并且有序排列的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <?php /** la (3,5,8,11) lb(2,6,8,9,11,15) 合并为lc,有序排列. 用php实现,不能用sort之类的函数!!!! **/ class union {     var $lista = array();     var $listb = array();     var $listc = array();          funct

php实现两表合并成新表并且有序排列的方法

 具体实现方法如下:   代码如下: <?php /** la (3,5,8,11) lb(2,6,8,9,11,15) 合并为lc,有序排列. 用php实现,不能用sort之类的函数!!!! **/ class union {     var $lista = array();     var $listb = array();     var $listc = array();          function getlenght($arr) { //获得表长度         retur

php 两表合并成新表并且有序排列

<?php /** la (3,5,8,11) lb(2,6,8,9,11,15) 合并为lc,有序排列. 用php实现,不能用sort之类的函数!!!! **/ class union {     var $lista = array();     var $listb = array();     var $listc = array();         function getlenght($arr) { //获得表长度         return count($arr);     }

C# linq 两个表,列名一样,但数据无关联,想合并为一个表

问题描述 C# linq 两个表,列名一样,但数据无关联,想合并为一个表 我有两个表 ,里面的列名结构都是一样的,但是id等数据都是不一样,我想将这两个表合并为一个表,在页面上显示.我是将这两个表都放进各自的泛型集合里,但是就变成两个类型了,如何将这两个表合并成一个表呢?或者用linq的话怎么写呢,这两表之间没什么关联,单纯只是想合并成一个表而已?求教~~~ (只是想在查询时,将这两个表合并为一个表进行查询,并不想更改这两个表的数据) 解决方案 左边或者右边select转换成另一个类型,然后co

如何将连接查询出来的ID相同的数据合并为一条

问题描述 这是我写SQLselecta.*,b.taname,c.tstname,e.deadname,d.tombdate,row_number()over(orderbya.tid,a.taline,a.taposi)asRNfromt_tomba,t_tomb_areab,t_pmt_tomb_statusc,t_tomb_dead_used,t_deadewherea.taid=b.taidanda.tstid=c.tstidandd.tid=a.tidandd.deadid=e.dea

[数据库] SQL查询语句表行列转换及一行数据转换成两列

本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同性质的学生总数 3.一行数据转换成两列数据 union all 4.表行列数据转换(表转置) 1.创建数据库表及插入数据 创建数据库.创建学生表并设置主键.插入数据代码如下: --创建数据库 create database StudentMS --使用数据库 use StudentMS --创建学生

sql server-求组 sql 关联表两个表显示同一张表中呢?

问题描述 求组 sql 关联表两个表显示同一张表中呢? 表a是主表 里面3条记录,表b是关联的字表,选择表a中的第1条记录 表b包含3条记录:选择表a中的第2条记录,表b包含4条记录:选择表a中的第3条记录,表b包含5条记录,我想重新做一个新表 表c 显示主表和子表所有行的记录,表c 中应该显示 3+4+5=12条记录,该怎么循环呢,求思路 解决方案 不需要循环,通过关联查询即可. 比如: select a.*,b.* from a left join b on a.id = b.id 解决方案

sql查询-sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容

问题描述 sql 同一个表中如何把两条数据合并成一条显示,并显示两条数据的全部内容 数据库是 sqlserver2008的环境. 是一个列变行的问题 ,请大师帮忙啊. 比如 table表中 字段: id name bianhao address shijian 1 张三 001 北京 2013-12-1 2 李四 001 北京 2013-12-1 最后显示的内容为: 字段: name1 name2 bianhao address shijian 张三 李四 001 北京 2013-12-1 合并

WPS如何将两张或几张工作表合并起来?

  WPS如何将两张或几张工作表合并起来?有比公式更简单的方法!就是"合并计算",求和.乘积.方差,只要添加合并区域就行了!   方法/步骤 1.打开原始表格数据,本表中一共有前三个月的会员积分数据,现在需要统计到第一季度下面; 2.选择第一季度列表下面的表格,点击"数据"->"合并计算"; 3.弹出对话框,选择函数"求和"; 4.然后再点击下图按钮,进行数据范围选择; 5.选择表格数据; 6.然后点击下图按钮; 7.返