从具有相同列的两个表的并集中选择所有行

雅各布·G

我已经阅读了有关该主题的至少10个SO问题,但无法弄清楚。我在Jupyter工作,但我认为这没有什么不同。

我有两个表:

   Table A           Table B
+-----+-----+     +-----+-----+
|  x  |  y  |     |  x  |  y  |
+-----+-----+     +-----+-----+
|  1  |  2  |     |  1  |  3  |
|  2  |  3  |     |  4  |  6  |
|  3  |  4  |     |  7  |  9  |
|  4  |  5  |     |  10 |  12 |
|  5  |  6  |     +-----+-----+
+-----+-----+

我可以使用以下查询合并这些表:

SELECT * FROM (
    SELECT * FROM A UNION SELECT * FROM B
)

但是,我不确定如何x从该联合返回具有重复列的四行我试过了GROUP BY x HAVING COUNT(*) > 1,但这只返回2行。输出应为:

+-----+-----+
|  x  |  y  |
+-----+-----+
|  1  |  2  |
|  1  |  3  |
|  4  |  5  |
|  4  |  6  |
+-----+-----+
戈登·利诺夫

您似乎想要:

select a.*
from a
where exists (select 1 from b where b.x = a.x)
union all
select b.*
from b
where exists (select 1 from a where a.x = b.x);

union删除重复项会产生开销。在您的情况下,这似乎是不必要的。因此,如果您不需要重复删除,请使用union all

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从具有相同列的两个表中选择

从具有公共列的两个表中选择所有 - 相同的列名

从两个表中选择所有行

如何选择子集中至少有两个相同值的所有行

根据相同的ID从两个表中选择所有内容

从具有相同列名的两个表中选择* mySQL

从两个具有相同值的表中选择数据后,结果重复

从2个表中选择所有具有相同ID的行

从所有条件中选择至少具有两个条件的行

从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

MySQL从表中选择数据并内部联接来自另外两个相同表的所有选择

更新表在不同的行中具有两个具有相同值的不同列

选择两列具有相同值的所有行?

SQL从具有不同列名的两个不同表中选择行

从两个联接表中选择具有最新日期而不重复的行?

从两个表中选择所有列 postgresql 函数

SQL从两个或多个不相关表中选择所有列

如何从两个具有不同布局的表中选择列

选择表中具有两个以上匹配组合键的所有行

SQL - 如何选择具有关系的两个表之间的所有行,

如何对具有相同列的两个表求和?

SQL查询以选择具有两个或多个相同列的行

如何在具有相同列的两个表中找到不同的行?

SQL从两个不同的表中选择相同的列

从表A中选择所有行,并在同一结果集中从表B中选择多个列

MySQL选择具有两个条件的行,并且具有相同列ID的计数大于1

选择两个日期之间 KDB 表中的所有行,但只取特定列中具有最大值的行

从表中选择两列均具有相同值的表

从两个表中选择具有条件的表中的记录