2010-05-10 96 views
1

我在我的数据库中两个以上的表,他们都包含了诸如如何在选择查询中的两个表的相同字段名称之间进行区分?

table A   table B  table C 
field1   field1  field1 
field2   field2  field2 
field3   field3  field3 
.     .    . 
.     .    . 
.     .    . 
.     .    . 

相同的字段名称我必须写一个SELECT查询其使用的东西从这3 tables.Iam得到几乎所有相同的字段,这样: -

select a.field1,a.field2,a.field3,b.field1,b.field2,b.field3,c.field1,c.field2,c.field3 from table A as a, table B as b,table C as c where so and so. 

但是当我打印field1的值,它给了我最后的表值。

我怎样才能得到所有的三个表的相同字段名的值???我是否必须为每个表编写单独的查询,或者是否有任何方法在单个查询中提取它们?

回答

0

这是您的编程工具处理重复字段名称的工件。如果你喜欢,你可以用AS别名字段名称:

SELECT a.field1 AS a_field1, ... 

应该再像a_field1访问。

0

您可以别名列。例如注意:语法可能因您的数据库而异。

SELECT 
    a.field1 `A_Field1`, 
    b.field1 `B_Field1` 

SELECT 
    a.field1 [A_Field1], 
    b.field1 [B_Field1] 

SELECT 
    a.field1 AS A_Field1, 
    b.field1 AS B_Field1 
1

就这样写,

select a.field1 as af1,a.field2 as af2,a.field3 as af3,b.field1 as bf1,b.field2 as bf2,b.field3 as bf3,c.field1 as cf1,c.field2 as cf2,c.field3 as cf3 from table A as a, table B as b,table C as c where so and so. 
+0

然而,在一个单一的线不写整个查询,除非它是非常短(例如“选择山坳FROM表其中arg =?”) – ThiefMaster 2010-05-10 07:13:24

+0

我的查询是非常长的,因为我将从每个表中选择近100个字段......所以我怎么写? – developer 2010-05-10 07:35:32

+0

如果你想选择特定的字段连接特定的字段名称与数据库别名或否则使用*,并使用该数据库别名获取特定的字段。 – Karthik 2010-05-10 07:41:01

相关问题