满足两个条件的两个表中的相同列名

Posted

技术标签:

【中文标题】满足两个条件的两个表中的相同列名【英文标题】:Same column name from two tables satisfying two conditions 【发布时间】:2021-12-02 12:32:18 【问题描述】:

我需要一些关于 SQL 的快速帮助。我敢肯定,这对大多数人来说都是基本的。

我想在两个满足 status = 1 的合并表中选择 orderId

请在此处找到两个表 tb1 和 tb2 的示例:

tb1

orderId  status
---------------
001     0
003     1
005     1
007     1
...

tb2

orderId  status
----------------
002      1
008      1
004      0

【问题讨论】:

UNION ALLUNION 如果你想要唯一的行 【参考方案1】:

使用这个查询:

SELECT 
    tb1.OrderId, 
    tb1.Status
FROM
    tb1
WHERE 
    tb1.status = 1

UNION 

SELECT
    tb2.OrderId, 
    tb2.Status
FROM
    tb2
WHERE 
    tb2.status = 1;

【讨论】:

【参考方案2】:

您可以使用UNION ALL

您的查询将是:

SELECT *
FROM (
   SELECT *
   FROM tb1

   UNION ALL

   SELECT *
   FROM tb2
) a
WHERE STATUS = 1

【讨论】:

以上是关于满足两个条件的两个表中的相同列名的主要内容,如果未能解决你的问题,请参考以下文章

来自具有相同列名的两个表的数据

找两个表中相同的列名

解析:内联,左外联,右外联,全连接,交叉连接的区别

如何匹配两个数据框的架构

Oracle select 语句显示两个表中的匹配列?没有数据,只有两个表中都存在的列名

c#中两个列名相同的datatable,如何将他们数据加到一起?