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

时间:2012-11-21 10:24:24

标签: php mysql prefix

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

问题是,如果带有数据的表的字段名称与批准表中的字段名称相同,那么当我使用mysql_fetch_array并返回数组中的值时,它将只返回一个字段名称

这是一个返回的例子

Array
(
    [id] => 1
)

理想情况下,我希望将其作为

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

那么如何才能使表名前缀到结果数组以抵消称为同一事物的字段名称呢?我不想将字段名称改为非常嵌入。

4 个答案:

答案 0 :(得分:4)

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

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

然后当您获取时,您将以这种方式访问​​它:

echo $row['t1_id'];

答案 1 :(得分:1)

使用mysql别名

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

将表id别名附加为[id AS affiliates.id]

答案 2 :(得分:1)

在查询中使用别名:

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

关联数组将包含:

echo $row['approvals_id'];

答案 3 :(得分:1)

  

问题是,如果包含数据的表具有相同的字段名称   作为批准表中的字段名称

您必须使用不同的别名为这些字段的名称添加别名。类似的东西:

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