IS NULL 在列中找不到空行

IS NULL doesnt find null rows in columns

$sql = $pdo->query('SELECT p.* FROM prospects p
        LEFT JOIN exported_leads e
        on p.id = e.lead_id WHERE DATEDIFF(NOW(), e.last_export_date) > 90 AND e.p". $partner_id ." IS NULL');

这是我正在使用的查询。这是数据库的样子(有一些例子): http://i.imgur.com/KrOv36e.png

这是数据库的结构:http://i.imgur.com/pqYXPuw.png

如您所见,export_id = 5 的行有一个 last_export_date 超过 90 天前。所以如果我删除

AND e.p". $partner_id ." IS NULL')

从查询中找到该行。但是,如果我仍然拥有它并且我正在填充的专栏是 p2。然后你可以看到该字段为NULL。这意味着 IS NULL 应该工作?但是,当我 运行 查询时,它找不到该行。

每当我导入那个 table 时,我都会自动将除一个 p* 字段之外的所有字段设置为 NULL。你可以看到它在数据库中有 NULL 作为值。 我假设查询没有将这些值视为 NULL,那么我如何改进此查询以实际找到那些显示 "NULL"?

的列

您在连接和引号方面一团糟:

$sql = $pdo->query('SELECT p.* 
                    FROM prospects p
                    LEFT JOIN exported_leads e ON p.id = e.lead_id
                    WHERE DATEDIFF(NOW(), e.last_export_date) > 90 
                      AND e.p' . $partner_id . ' IS NULL');