Mysql 在where子句中使用子查询

Mysql 在where子句中使用子查询,mysql,Mysql,我有一个子查询,如下所示: SELECT field1, ( SELECT date2 FROM table2 ORDER BY date2 DESC ) AS last_contacted FROM table1 ORDER BY last_contacted DESC 但是,我得到的记录中,last\u contacted为空。我不希望这些出现在结果中,因此我认为,其中last_contacted不为NULL,但这会返回错

我有一个子查询,如下所示:

    SELECT field1, (
      SELECT date2
      FROM table2
      ORDER BY date2 DESC
    ) AS last_contacted
    FROM table1
    ORDER BY last_contacted DESC
但是,我得到的记录中,
last\u contacted
为空。我不希望这些出现在结果中,因此我认为,
其中last_contacted不为NULL
,但这会返回错误:

where子句中的未知列“上次联系”


那么,我如何从结果中删除这些内容呢

可以在GROUP BY、ORDER BY或HAVING子句中使用列别名

请参阅mysql文档


中的
替换为
具有

SELECT field1, (
  SELECT date2
  FROM table2
  ORDER BY date2 DESC
) AS last_contacted
FROM table1
HAVING last_contacted NOT NULL
ORDER BY last_contacted DESC