带左连接的mysql_fetch_assoc导致返回null id

时间:2014-09-22 04:44:57

标签: mysql sql null left-join

使用mysql_fetch_assoc我通常能够返回所有列而无需单独指定它们,这很好。如果没有要从t2加入的实际行,则会出现此问题。

SELECT * FROM t1 LEFT JOIN t2 ON (t1.id = t2.id)

在这种情况下,'id'将从t1返回NULL,从t1返回12345。但不幸的是t2似乎在这里优先考虑(可能会成为它在查询中的最后一个)所以我最终得到$ row [id']为NULL实际上我希望我的结果数组中的12345只有来自t2的其他值NULL。

对此有何想法或解决方法?

2 个答案:

答案 0 :(得分:0)

最好提供别名,但这种解决方法可能会解决您的问题

select t1.*, t2.* LEFT JOIN t2 ON (t1.id = t2.id)

答案 1 :(得分:0)

根据评论中的要求,我将其作为答案发布

  

如果两个表在两个表中具有相同的列名,例如id,则表示您   必须给它们唯一的别名,因为在php key for array或   对象是唯一的,就像你不能有2个具有相同名称的键和   不同的值,如果你尝试做这种类型的事情,它将覆盖   存储在该密钥的先前值