我想合并两个表 [Table1] 和 [Table2] 并按 ID 显示结果 where [Tabl1].[names] = 'any string name'?

Posted

技术标签:

【中文标题】我想合并两个表 [Table1] 和 [Table2] 并按 ID 显示结果 where [Tabl1].[names] = \'any string name\'?【英文标题】:I want to merge two tables [Tabl1] and [Tabl2] and show result by ID where [Tabl1].[names] = 'any string name'?我想合并两个表 [Table1] 和 [Table2] 并按 ID 显示结果 where [Tabl1].[names] = 'any string name'? 【发布时间】:2017-04-22 20:42:30 【问题描述】:

在我的示例中,名称如 '' 显示所有值 tabl2 和 tabl1

SELECT * 
FROM
    (SELECT 
         ID, names, NULL AS address, work, note
     FROM   
         Tabl1
     UNION  
     SELECT 
         ID, name, address, NULL, NULL
     FROM   
         Tabl2) as x
ORDER BY 
    id, note DESC, address

【问题讨论】:

【参考方案1】:

With CTE_NAME(ID, names) --临时表的列名 作为 ( 从表 1 中选择 ID 和名称 联盟 从表 2 中选择 ID 和名称

) SELECT * FROM CTE_NAME --SELECT 或使用 CTE 临时表 WHERE 名称 = "x" 按 ID 订购

【讨论】:

【参考方案2】:

您需要使用 UNION 来组合两个查询的结果。在你的情况下:

SELECT ID, names, NULL AS address, work, note
FROM Tabl1
GROUP BY names
UNION ALL
SELECT ID, name, address, NULL, NULL
FROM Tabl2
GROUP BY Tabl3

注意 - 如果您像上面那样使用 UNION ALL,它不会比单独运行两个查询慢,因为它不进行重复检查。

【讨论】:

以上是关于我想合并两个表 [Table1] 和 [Table2] 并按 ID 显示结果 where [Tabl1].[names] = 'any string name'?的主要内容,如果未能解决你的问题,请参考以下文章

如何合并具有不同列号的两个表,同时删除具有大量列的表的重复项

从两个 DB2 表 UNION ALL 中提取数据

将具有不同列和数据的两个表合并

如何使用 PL/SQL 函数比较两个表?

两个表之间的查询慢

R中的连接/合并表