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

Posted

技术标签:

【中文标题】mysql php从2个表中选择字段,具有相同的字段名称[重复]【英文标题】:mysql php selecting fields from 2 tables, with the same field names [duplicate] 【发布时间】:2012-11-21 10:24:23 【问题描述】:

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

问题是,如果有数据的表的字段名与approvals表中的字段名相同,那么当i mysql_fetch_array 并且它返回一个数组中的值时,它只会返回一个字段名

所以一个返回的例子

Array
(
    [id] => 1
)

理想情况下,我希望它返回

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

那么我怎样才能让它在结果数组的表名前加上前缀来抵消称为相同事物的字段名呢?我不想更改字段名称,因为它非常嵌入。

【问题讨论】:

可以修改sql吗? 【参考方案1】:

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

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

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

echo $row['t1_id'];

【讨论】:

【参考方案2】:

使用mysql别名

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

affiliates 表 id 别名为 [id AS associates.id]

【讨论】:

【参考方案3】:

在查询中使用别名:

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

关联数组将包含:

echo $row['approvals_id'];

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

以上是关于mysql php从2个表中选择字段,具有相同的字段名称[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 从具有相同结构但数据不同的多个表中选择数据

MySQL INSERT ... 从 1 个表中选择 2 个表

在每个表,mysql,经典asp中按相同字段排序2个表

如何从 2 个表中选择最近的日期时间

尝试从 codeigniter 代码中的 2 个表中获取值

mysql插入tbl(从2个表中选择)