2012-11-21 230 views
4

所以我有一个定制CMS,允许动态创建表单和列表等。我注意到一个问题,它抓取列表的数据,这是与数据库中的核准表。mysql php从两个表中选择字段,使用相同的字段名称

的问题是,如果与数据表中有字段名称一样,在审批表的字段名,然后当我mysql_fetch_array并以数组形式返回的值,它只会返回一个字段名称

所以被返回

Array 
(
    [id] => 1 
) 

什么,最好我想一个例子,它返回的

Array 
(
    [approvals.id] => 1 
    [affiliates.id] => 2 
) 

所以,我怎样才能使它的前缀表名称的结果数组来抵消称为同一事物的字段名称?我不想通过改变字段名称来完成它的嵌入。

+0

是否可以修改sql? – Dale

回答

4

通常使用别名在SQL语句:

SELECT table1.id as t1_id, table2.id as t2_id FROM ..... 

然后当你有取,你会进入这样说:

echo $row['t1_id']; 
1

使用MySQL别名

批准表id别名为[id AS approvals.id]

子公司表id别名为[id AS affiliates.id]

1

在查询中使用的别名:

SELECT approvals.id AS approvals_id, affiliates.id AS affiliates_id ... 

缔阵列将包含然后:

echo $row['approvals_id']; 
1

的问题是,如果与数据表中有字段的名称与批准表中的字段名称相同

您必须用不同的别名别名这些字段的名称。例如:

SELECT 
    approvals.id approvalsid, 
    affiliates.id affiliatesid 
    ... 
FROM 
... 
相关问题