如果我有这个查询:
SELECT tableA.Id, tableB.Id FROM tableA JOIN tableB ON (tableA.bId = tableB.Id)
现在,如果我在php中尝试这个,我有一些问题:
while($result = mysql_fetch_array(mysql_query(/Query Above/)){
print $result['tableB.Id'];
}
现在我知道你要说的是我应该做我的查询:
SELECT tableA.Id AS aId, tableB.Id AS bId
FROM tableA
JOIN tableB ON (tableA.bId = tableB.Id)
然后使用:$result['bId']
但事实是查询实际上是这样的:
SELECT tableA.*, tableB.* FROM tableA JOIN tableB ON (tableA.bId = tableB.Id)
有没有办法在不为每个匹配行执行AS的情况下在PHP中获得结果?
由于
答案 0 :(得分:4)
根据PHP手册,你不能这样做:
“如果结果的两列或多列具有相同的字段名称,则最后一列优先。要访问同名的其他列,您需要使用数字索引访问结果mysql_fetch_row()或添加别名。“
比照http://www.php.net/manual/en/function.mysql-fetch-assoc.php