加入两个并列具有相同名称sql的列的表

时间:2016-07-13 09:41:10

标签: sql sqlite

我有两个具有相同列名的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

在我的实际案例中,我有很多列,所以我想避免两次写每个列名来指定顺序。

重命名列不是我主要考虑的问题,最让我感兴趣的是同名列的并置。

2 个答案:

答案 0 :(得分:2)

在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)+

答案 1 :(得分:0)

尝试以下查询以获得所需的结果!!

SELECT t1.Height AS Height_1, t1.Weight AS Weight_1, t1.sharedColumn AS SharedColumn
   t2.Height AS Height_2, t2.Weight AS Weight_2
   FROM t1 INNER JOIN t2
   ON t1.sharedColumn = t2.sharedColumn
   ORDER By t1.sharedColumn ASC

之后,您可以通过以下行获取结果:

$result['SharedColumn'];
$result['Height_1'];
$result['Height_2'];
$result['Weight_1'];
$result['Weight_1'];