Un alias es cuando cambia el nombre de algo, como SELECT t.time from table t
, t
es el alias de esa tabla. En este caso, es necesario dar un alias a las tablas generadas por las subconsultas:
SELECT MAX(ut.DateTime)
FROM (
(
SELECT DateTime
FROM Class_Searches
) cs
UNION ALL (
SELECT DateTime
FROM Book_Searches
) bs
) ut
WHERE User_Email = '[email protected]'
AND ut.DateTime > NOW() - INTERVAL 30 DAY
Eso todavía no funcionará sin embargo, porque usted no tiene una columna user_email regresaron de la unión. Por lo tanto, trate de:
SELECT MAX(ut.DateTime)
FROM (
(
SELECT DateTime, User_Email
FROM Class_Searches
) cs
UNION ALL (
SELECT DateTime, User_Email
FROM Book_Searches
) bs
) ut
WHERE ut.User_Email = '[email protected]'
AND ut.DateTime > NOW() - INTERVAL 30 DAY
Es posible que que aún no funciona bien porque la sintaxis de la UNIÓN, pero al menos es mucho más cerca.
me sale este error con la segunda consulta: # 1064 - Usted tiene un error en su sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de 'bs ) ut WHERE ut.User_Email =' [email protected] ' AND ut.DateTime> NOW() - INTER' en la línea 10 – babonk