我有一个包含22个表的数据库大多数表都有几个同名的列字段。当我对具有重复列名的表使用内部联接时,它将忽略最后一个表中的列名。现在我只加入了三个表
SELECT * FROM company C
INNER JOIN typeofdealer PI ON C.CompanyID = PI.CompanyID
INNER JOIN typeofservices TS ON PI.CompanyID = TS.CompanyID
所以在这个例子中
typeofdealer
和typeofservices
都包含列名Other
和OtherText
当我返回这个查询时,我只看到一个Other
和一个OtherText
。我刚在写这篇文章的时候发现,如果我在“phpmyadmin”中执行查询,我会完全按照预期的方式把它取回。我正在使用php中准备好的语句执行此查询,并使用以下命令输出结果:
echo "<PRE>";
print_r($results);
echo "</PRE>";
我认为问题在于php数组不能包含重复的字段,所以有没有办法避免我遇到的问题?
最佳答案
解决方法是使用别名来区分具有相同名称的列。类似于:
SELECT PI.Other AS Other1, PI.OtherText AS OtherText2, TS.Other AS Other2, TS.OtherText AS OtherText2 FROM company C
INNER JOIN typeofdealer PI ON C.CompanyID = PI.CompanyID
INNER JOIN typeofservices TS ON PI.CompanyID = TS.CompanyID
实际上,如果省略AS关键字say
AS
关于php - MySQL不使用INNER JOIN在单独的表中显示重复的列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21835963/