select * from A left join B on A.columnc=B.columnd
Run Code Online (Sandbox Code Playgroud)
上面SQL返回的结果将包括A和B两列.
如果A和B有一些同名的列怎么办?
如何从PHP中检索值?
Aro*_*eel 18
您可能希望在查询中更明确.这样您就可以为列提供别名:
SELECT
A.foo as a_foo,
B.foo as b_foo
FROM A
LEFT JOIN B ON A.columnc = B.columnd
Run Code Online (Sandbox Code Playgroud)
答案是在PHP文档中实际的:
"如果结果的两列或多列具有相同的字段名称,则最后一列将优先.要访问同名的其他列,您需要使用数字索引访问结果mysql_fetch_row()
或使用别名来添加别名名称.请参阅mysql_fetch_array()
有关别名的说明中的示例."
mysql_fetch_array()
当您坚持在select语句中使用star时,Especialy 似乎是最佳候选者:
$row = mysql_fetch_array($result, MYSQL_BOTH)
Run Code Online (Sandbox Code Playgroud)
然后你就可以参考unambigous领域$row[name]
,并通过ambigous一个$row[col_number]
,但限制你的代码可移植性(也许MySQL的下一个版本将会以不同的顺序返回列?).建议的解决方案是重写您的查询并列出所有必需的字段,而不是使用星形和对于模糊的字段 - 使用别名.