我有两个具有相同列名的sqlite3表,我想对其进行比较。为此,我需要联接表并将具有相同名称的列并置。
这些表共享一个相同的列,我想将其作为第一列。

假设我有表t1和表t2

表t1:

SharedColumn | Height | Weight
        A    |   2    |   70
        B    |   10   |   100


表t2:

SharedColumn | Height | Weight
        A    |   5    |   25
        B    |   32   |   30


我要查询的结果是:

SharedColumn | Height_1 | Height_2 | Weight_1 | Weight_2
        A     |    2     |     5    |    70    |    25
        B     |    10    |     32   |    100   |    30


在我的实际情况下,我有很多列,所以我要避免为每个列名称写两次以指定顺序。

重命名列不是我主要关心的问题,最让我感兴趣的是具有相同名称的列的并置。

最佳答案

无法直接在SQL中执行此操作,尤其是因为您还想重命名列以标识其来源,因此您必须使用动态SQL吗?别! 。

只需编写列名称,大多数SQL工具提供了一种生成选择的方法,只需复制它们并将其放置在正确的位置即可:

SELECT t1.sharedColumn,t1.height as height_1,t2.height as height_2 ...
FROM t1
JOIN t2 ON(t1.sharedColumn = t2.sharedColumn)+

10-04 10:23