例如:我有两个表EPL1和EPL2,其中包含得分,助攻和比赛等情况的足球运动员的数据。两个表的结构完全相同。

第一表包含罗纳尔多,梅西的统计数据,每个都有2个进球。 第二表包含罗纳尔多,梅西的统计数据,每个都有3个进球。

现在,我要合并这两个表,并希望得到一个输出,其中包含Ronaldo和Messi,每个目标有5个目标。

需要注意的最重要的一点是,两个表都具有完全相同的结构和列名,我只想合并(添加)两个表中所有列的值。

那么我应该在Oracle中使用哪种联接呢?

===============>>#1 票数:1

最简单的方法是使用UNION ALL语句。

select player, sum(goals) as goals
from 
     ( select *
       from table1
       union all
       select *
       from table2 )
group by player

当两个表具有相同的结构时(或者您只是选择一个投影),并且您想从所有表中选择所有行时,此方法效果很好。 这种方法很容易扩展到三个或更多表。

请注意,您需要使用UNION ALL 普通的UNION运算符将产生错误的结果,例如您在表1中具有('XAVI',2)在表2中具有('XAVI',2):它应用了不同的过滤器,因此您将获得((' XAVI',2)代替('XAVI',4)。

===============>>#2 票数:0

插入到NewT​​able中,按玩家分组,选择总和(目标),玩家(选择*从EPL1并入所有选择*从EPL2)

===============>>#3 票数:0

在不知道表结构的情况下,要知道答案有点困难,但是您可能需要这样的东西

select epl1.name, sum(epl1.goals + epl2.goals)
from epl1
left join epl2
where epl1.name = epl2.name
group by epl1.name

===============>>#4 票数:0

同样,拥有两个结构相同的表也不是正确的设计,您可以使用以下方法获得所需的输出:

SELECT * FROM epl1
UNION ALL
SELECT * FROM epl2;

  ask by user3554231 translate from so

未解决问题?本站智能推荐:

1回复

从具有相同结构的两个表中获取重叠数据,从而优先考虑其他数据:Oracle

我完全不知道如何解决数据检索这一难题。 我的Oracle数据库中有两个表: MY_DATA和MY_DATA_CHANGE 。 我想选择像这样的数据: 因此,我的总体结果必须如下所示: 我只能使用SQL而不是存储过程,因为此查询将成为另一个非常大的查询(很久以前写
2回复

在具有多层的两个表中添加两列

我这里有两个表,需要从中添加两列。 结果应采用以下形式:
1回复

合并两个具有相同结构的表

我有两个相同的表,用于保存问题,姓氏和姓氏。 其中一项是针对英国,另一项是针对美国。现在,我想找出问得最多的人。 我尝试并找到了解决方案: 这也给了我想要的结果,但这仅用于英国表。 我想找出最常问到的十大人物,这意味着我必须将英国和美国的表格合并然后列出来,我不希望英国的TOP 1
2回复

标识在两个不同列中具有两个相同值的记录?

我有一张学生证的表格,major1,major2和minor。 我想确定那些注册了同一专业两次的学生的记录。 我需要一个函数来仅选择那些具有相同专业的人,例如在Major1和Major2列中使用“ FIN”。 我到目前为止:
1回复

从两个不同的表中添加两列

我有两个表具有相同的字段类型。 此处常见的字段是* BG_ID *和商店编号 。 现在,我想从两个表,并将它们按BG_ID SUM两列(* total_area *和* total_area_blk *)。 以下是我尝试不起作用的内容:
3回复

2个两个相同的表结构之间的列值差异

Oracle数据库:我有一个表,该表与来自外部系统的数据保持同步。 每隔15分钟,我们就会收到对该主表所做的所有更改的供稿。 我们可以将此修改记录的提要存储在登台表中。 我们需要找到在主表和登台表之间已更改的列,并记录这些差异以进行后续处理。 简单的例子: 现在,我有一个具有
1回复

在不同的列上连接两个表,其中一列具有相同的数据,但在引号内

我想对两个表之间存在的某些数据进行联接。 每个表都有数据,但是在不同的列中,其中一个表的数据用双引号引起来。 例如,表1的列 如何忽略双引号将DR111上的两个表连接在一起?
2回复

如何在plsql中比较具有相同列的两个表?

我有两个表: aanvr_omzetten (请求)和klant (客户) 表的结构: 这是我的代码: 我不需要比较所有列,只需比较aanvr_omzetten klant中的那些列,因为表klant具有所有这些列和其他内容。 KLANT v_klantnummer主
3回复

如何在Oracle中从具有相同列名的两个表中检索数据

我有两个表,一个工作表,另一个是备份表。 两个表都有相同的列。 现在,我希望在单个查询中来自两个表的几列数据。 有可能在单个查询吗? 表名: transationdetails workingtable transationdetails_backup是备份表 例如,我在这
1回复

如何对具有相同列的两个表进行分组以实现列值的总和

我有两个具有相同列的oracle表,我想对这两个表创建一个按列总计的查询:表1: 表2: 我想创建一个选择查询,该查询允许有一个表,该表基于列card_type和date_creation计算出总数 查询结果应为:表3: