Mysql
 sql >> Base de données >  >> RDS >> Mysql

Chaque table dérivée doit avoir sa propre erreur d'alias

Vous avez besoin d'un alias pour la sous-requête, et vous devez appliquer les conditions soit aux deux requêtes que vous unissez :

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

ou renvoyer des données afin que vous puissiez appliquer la condition dans la requête externe :

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