考虑两个表:
t1 t2
A B A C
------ -----
1 2 3 4
我运行此代码:
$q = mysql_query("SELECT * FROM t1 LEFT JOIN t2 ON 1=1");
print_r(mysql_fetch_all($q));
得到这个结果:
array(
A => 3
B => 2
C => 4
)
在我试过的所有情况下,最新连接表的值都转到了数组(索引A)。问题是,我可以指望吗?
我知道别名,但如果我能知道Mysql + php在这种情况下的表现如何,对我来说会容易得多。谢谢。
答案 0 :(得分:1)
假设您使用
mysql_fetch_assoc()
然后你可以指望它:
返回值
如果结果的两列或多列具有相同的字段名称,则 最后一列优先。访问的其他列 相同的名称,您需要使用数字索引访问结果 通过使用mysql_fetch_row()或添加别名。请参阅下面的示例 mysql_fetch_array()描述别名。
注意强>
请看红色方框。如果您为新项目编写新代码,请考虑转移到mysqli或PDO。并考虑将mysql_ *函数的弃用纳入现有项目中。
答案 1 :(得分:0)
您可以指定别名来提供帮助:
SELECT *,t1.a AS t1_a FROM ...
如果您在select子句中有操作,别名也会有帮助,例如:SUM(a * b)AS line_total