如何区分选择查询中两个表的相同字段名称?

时间:2010-05-10 07:00:45

标签: mysql multiple-tables

我的数据库中有两个以上的表,并且所有表都包含相同的字段名称,如

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

我必须编写一个SELECT查询,它从这3个表中获得几乎所有相同的字段。我正在使用这样的东西:

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的值时,它会给我最后一个表值。

如何获取具有相同字段名称的三个表的所有值?我是否必须为每个表编写单独的查询?还是有任何方法可以在一个查询中获取它们吗?

3 个答案:

答案 0 :(得分: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.

答案 1 :(得分:0)

这是一个关于编程工具如何处理重复字段名称的工件。如果您愿意,可以使用AS别名字段名称:

SELECT a.field1 AS a_field1, ...

然后应该可以a_field1访问它。

答案 2 :(得分: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