Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Jede abgeleitete Tabelle muss ihren eigenen Aliasfehler haben

Sie benötigen einen Alias ​​für die Unterabfrage, und Sie müssen die Bedingungen entweder auf beide Abfragen anwenden, die Sie vereinen:

SELECT MAX(DateTime)
FROM (

  SELECT DateTime
  FROM Class_Searches
  WHERE User_Email = '[email protected]'
  AND DateTime > NOW( ) - INTERVAL 30 DAY

  UNION ALL

  SELECT DateTime
  FROM Book_Searches
  WHERE User_Email = '[email protected]'
  AND DateTime > NOW( ) - INTERVAL 30 DAY

) AS x

oder geben Sie Daten zurück, damit Sie die Bedingung in der äußeren Abfrage anwenden können:

SELECT MAX(DateTime)
FROM (

  SELECT DateTime, User_Email
  FROM Class_Searches

  UNION ALL

  SELECT DateTime, User_Email
  FROM Book_Searches

) AS x
WHERE User_Email = '[email protected]'
AND DateTime > NOW( ) - INTERVAL 30 DAY