运行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 ...)
我不明白这是怎么发生的。非常感谢任何帮助!
答案 0 :(得分:3)
我不是100%确定这是你的问题,但当你说:
select *
from . . .
它将从所有表中返回所有列。这意味着结果中有两列名为planId
,一列来自plan
,另一列来自bill
。 bill
中的一个是NULL
,假设where
子句的目的是找到不匹配。那可能就是你所看到的那个。
解决方案是明确选择所需的特定列。也许:
select plan.planId
from . . .