SQL Query返回意外的NULL值

时间:2014-06-05 20:19:35

标签: php mysql sql pdo

运行SQL查询时,我得到一个奇怪的NULL结果。这是查询:

SELECT * FROM plan LEFT JOIN bill ON plan.planID = bill.planID AND bill.typeID =3 WHERE bill.billID IS NULL 

我使用PDO对象在PHP中运行查询。所有结果都是这样的:

Array ( [planID] => [0] => 7 [clientID] => 4 ...)

问题在于返回的第一个值。正如您所看到的,PlanID为NULL,但是当使用数字键拉出相同的值时,它会正确显示为“7”。我试图通过向查询代码添加PDO::FETCH_ASSOC来解决此问题,但我得到以下结果:

Array ( [planID] => [clientID] => 4 ...)

我不明白这是怎么发生的。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

我不是100%确定这是你的问题,但当你说:

select *
from . . .

它将从所有表中返回所有列。这意味着结果中有两列名为planId,一列来自plan,另一列来自billbill中的一个是NULL,假设where子句的目的是找到不匹配。那可能就是你所看到的那个。

解决方案是明确选择所需的特定列。也许:

select plan.planId
from . . .