PHP Mysqli fetch_assoc()对已加入的查询

时间:2016-05-30 06:43:46

标签: php mysqli

每当我运行这段代码时,我只得到test2的值,因为列是相同的。

$Return = array();
$Output = $MySQLi->query("SELECT * FROM test1 as A LEFT JOIN test2 as B ON A.abc=B.abc");
while($Row = $Output->fetch_assoc()) {
    $Return[] = $Row;
}
var_dump($Return);

这就是我得到的。

array(1) { [0]=> array(2) { ["abc"]=> string(1) "2" [123]=> string(1) "3" } }

有没有办法让fetch_assoc()返回这样的东西?

array(1) { [0]=> array(2) { ["A.abc"]=> string(1) "7" [A.123]=> string(1) "8"  ["B.abc"]=> string(1) "2" [B.123]=> string(1) "3" } }

2 个答案:

答案 0 :(得分:0)

您需要在选择数据时使用别名,最好只选择需要的而不是使用*

按如下所示编写查询: -

 SELECT A.abc as 'A.abc',A.123 as 'A.123',B.abc as 'B.abc',B.123 as 'B.123'  
 FROM test1 as A 
 LEFT JOIN test2 as B 
 ON A.abc=B.abc

希望它会对你有所帮助: - )

答案 1 :(得分:0)

虽然一般来说这个问题的答案是在查询中定义别名,为了解决这个特殊的不便(以及无数个实际问题),你必须将所有类似的数据放到一个表中。这是唯一正确的方法。