我有一个包含22个表的数据库,大多数表都有几个具有相同名称的列字段。当我在具有重复列名的表上使用INNER JOIN时,它将在最后一个表中忽略它们。现在我只参加3张桌子
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数组不能包含重复的字段,所以有没有办法避免我遇到的问题?
为此,您可以使用的别名是使用别名AS
来区分名称相同的列。就像是:
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关键字“说”,它将以相同的方式工作 SELECT PI.Other Other1, PI.OtherText OtherText2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句