ANSIの意味は、COALESCE を使用することです。 :
SELECT COALESCE(a2.date, a1.date) AS `date`
...
MySQLのネイティブ構文は
SELECT IFNULL(a2.date, a1.date) AS `date`
...
COALESCEとは異なり、IFNULLは他のデータベースに移植できません。
もう1つのANSI構文、CASE式 、はオプションです:
SELECT CASE
WHEN a2.date IS NULL THEN a1.date
ELSE a2.date
END AS `date`
...
適切に機能するにはより多くの方向性が必要ですが、要件が変更された場合はより柔軟になります。