如何加入类似的列?

时间:2011-10-25 23:25:57

标签: sql join

如果我有两个表A和B,那么表A有列:ID,VALUE,ACTIVE 和表B有列:ID,NAME,ACTIVE。

A.ACTIVE和B.ACTIVE指的是不同的东西。

一旦 SELECT * FROM A JOIN B ON A.ID = B.ID

我想分开ACTIVE列,以便知道哪个是哪个。 我该如何完成呢? 谢谢!

2 个答案:

答案 0 :(得分:4)

不要使用*并限定每列

select a.active as a_active, b.active as b_active, ... 
  from a join b on a.id = b.id

答案 1 :(得分:1)

  

A.ACTIVE和B.ACTIVE指的是不同的东西

我认为您应该重新评估您的命名约定。考虑来自ACTIVE值域的列应该具有模式(表)中每个匹配(列)的不同名称,例如作为第一步,尝试通过使用表名前缀来限定它们......但首先要考虑比AB更有意义的名称:)

根据@ dispake的回答,你可以使用AS子句来动态地重命名列,但如果你需要经常这样做,这应该被视为代码气味。