如果我有两个表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列,以便知道哪个是哪个。 我该如何完成呢? 谢谢!
答案 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
值域的列应该具有模式(表)中每个匹配(列)的不同名称,例如作为第一步,尝试通过使用表名前缀来限定它们......但首先要考虑比A
和B
更有意义的名称:)
根据@ dispake的回答,你可以使用AS
子句来动态地重命名列,但如果你需要经常这样做,这应该被视为代码气味。