如何合并 2 个表的结果

Posted

技术标签:

【中文标题】如何合并 2 个表的结果【英文标题】:How to combine results from 2 tables 【发布时间】:2016-07-03 09:59:26 【问题描述】:

我有这样的表 1:

和表2:

结果应该是这样的:

我想合并上面 2 个表格的结果。我该怎么做?感谢您的帮助。

【问题讨论】:

你能展示一下你到目前为止所做的尝试吗? @PeterSmith 我想得到这样的结果:res.cloudinary.com/luanvne/image/upload/v1467540559/… 【参考方案1】:

他们似乎没有关系,所以你需要CROSS JOIN

SELECT *
FROM Table1 t
CROSS JOIN Table2 s

编辑:使用ROW_NUMBER()

SELECT tt.loaiphong,ss.col1,ss.col2........
FROM (SELECT t.*,ROW_NUMBER() OVER(ORDER BY (SELECT 1)) as rnk FROM Table1 t) tt
INNER JOIN(SELECT s.*,ROW_NUMBER() OVER(ORDER BY (SELECT 1)) as rnk FROM Table2 s) ss
 ON(tt.rnk = ss.rnk)

如果您对两个表中的所有记录感兴趣,而不仅仅是匹配的行,请将INNER JOIN 更改为FULL OUTER JOIN

【讨论】:

这似乎不正确,我得到了 9 行。 res.cloudinary.com/luanvne/image/upload/v1467540765/…我想得到这样的结果:res.cloudinary.com/luanvne/image/upload/v1467540559/… 为什么DLX 加入第一行?为什么SUI 到第二个?如果没有关系,我该怎么做? @ZaneKey 我在上面添加了结果的照片。你能看到并想象我想要得到什么结果吗? 你不听我的,为什么DLX 连接到第一行?!为什么不是第二个??? 我只是想从表 1 和表 2 中组合并得到具有 3 行的新表,如下所示:res.cloudinary.com/luanvne/image/upload/v1467540559/… DLX 连接到第一行或第二行都没有关系。

以上是关于如何合并 2 个表的结果的主要内容,如果未能解决你的问题,请参考以下文章

sql 用union合并合并查询结果

SQL 将 2 个表合并在一列中,以逗号分隔

如何使用 innerJoinAndSelect 将两个表合并为一个?

如何合并两个表并将一个表的结果分组?

excel表怎么把2个表相同的表头不同的内容合并在一起?

如何将没有公共列的 2 个表合并到 SSIS 中的 1 个表中?