Ein Alias ist Wenn Sie etwas umbenennen, wie SELECT t.time from table t
, ist t
der Alias für diese Tabelle. In diesem Fall müssen Sie einen Aliasnamen für die Tabellen, die von den Unterabfragen erzeugt geben:
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
Das nach wie vor, wird allerdings nicht funktionieren, weil Sie von der UNION keine user_email Spalt zurückgegeben. So versucht:
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 ist möglich, dass das noch nicht richtig, weil die UNION-Syntax wird funktionieren, aber zumindest ist es ein gutes Stück näher.
ich diesen Fehler mit der zweiten Abfrage: # 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe 'bs entspricht) UT WHERE ut.User_Email =' [email protected] ' UND ut.DateTime> NOW() - INTER' bei Zeile 10 – babonk