mysql php从两个表中选择具有相同字段名的字段

mysql php从两个表中选择具有相同字段名的字段,php,mysql,prefix,Php,Mysql,Prefix,因此,我有一个定制的CMS,它允许动态创建表单和列表等。我注意到一个问题,它获取列表的数据,这与数据库中的审批表相冲突 问题是,如果包含数据的表的字段名与approvals表中的字段名相同,那么当我使用mysql_fetch_数组并返回数组中的值时,它将只返回一个字段名 下面是一个返回内容的示例 Array ( [id] => 1 ) 理想情况下,我希望它能作为 Array ( [approvals.id] => 1 [affiliates.id] =>

因此,我有一个定制的CMS,它允许动态创建表单和列表等。我注意到一个问题,它获取列表的数据,这与数据库中的审批表相冲突

问题是,如果包含数据的表的字段名与approvals表中的字段名相同,那么当我使用mysql_fetch_数组并返回数组中的值时,它将只返回一个字段名

下面是一个返回内容的示例

Array
(
    [id] => 1
)
理想情况下,我希望它能作为

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

那么,如何使它在结果数组中添加表名前缀,以抵消称为相同内容的字段名呢?我不想更改字段名,因为它非常嵌入。

通常在SQL语句中使用别名:

SELECT table1.id as t1_id, table2.id as t2_id FROM .....
然后,当您进行抓取时,您将通过以下方式访问它:

echo $row['t1_id'];
使用mysql别名

approvals表id别名为[id as approvals.id]


附属机构表id别名为[id as affiliates.id]

在查询中使用别名:

SELECT approvals.id AS approvals_id, affiliates.id AS affiliates_id ...
然后,关联数组将包含:

echo $row['approvals_id'];
问题是,如果包含数据的表的字段名称相同 作为审批表中的字段名

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

SELECT 
   approvals.id approvalsid,
   affiliates.id affiliatesid
    ...
FROM
...

您可以修改sql吗?