Mysql 连接具有同名列的表时,PHP中存在问题

Mysql 连接具有同名列的表时,PHP中存在问题,mysql,Mysql,在MySQL中,我连接了两个表,它们都有一个名为“Name”的列。在PHP中,我编写了一个脚本,用于检索列的值并将其存储在变量中: $row = mysql_fetch_array($result); $table1name = $row['Name']; $table2Name = $row['Name']; 当然,变量不会给出这两列的值,但它们都会从第二个表的列中给出相同的值。是否有一种方法可以在不更改数据库中列的名称的情况下检索两列的不同值?您需要在mysql中使用alias S

在MySQL中,我连接了两个表,它们都有一个名为“Name”的列。在PHP中,我编写了一个脚本,用于检索列的值并将其存储在变量中:

$row = mysql_fetch_array($result);

$table1name = $row['Name'];   
$table2Name = $row['Name'];

当然,变量不会给出这两列的值,但它们都会从第二个表的列中给出相同的值。是否有一种方法可以在不更改数据库中列的名称的情况下检索两列的不同值?

您需要在mysql中使用alias

SELECT table1.name AS name1

对。在SQL查询中,使用
AS
关键字指定所需的别名

例如:

SELECT `tbl_1`.`field` AS `tbl_1_field`, `tbl_2`.`field` AS `tbl_2_field` FROM....

不需要反勾号,这正是我学习SQL的方式。

您可以在mysql查询中使用表限定符引用它们,例如tablea.id和tableb.id,如果您在结果中同时需要这两个id,您可以选择tablea.id作为id1,tableb.id作为id2等。

因为定义别名不需要,但是它确实使它变得更明显关键字AS也是可选的,至少在MySQL中是这样。@是123:它只会变得更糟,你的代表级别越高。表别名不能解决问题,只有列别名威利没有说表别名,我演示了如何为特定字段别名。我提到了引用它们的表限定符,然后将它们命名为themNote,虽然您应该为类似的名称命名,但这与PHP的
mysql\u fetch\u array()
比mysql更相关。这是一个SQL问题(通过使用别名解决),而不是PHP问题。。。