bir takma ad olduğu emin değilim Bir şeyi yeniden adlandırdığınızda, SELECT t.time from table t
, t
, bu tablonun diğer adıdır. Bu durumda, alt sorgular tarafından oluşturulan tablolar için bir takma ad vermek gerekir: Bir user_email sütunu yok çünkü hala olsa çalışmaz
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
BİRLİĞİ döndü. Böylece, deneyin:
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
O hala çünkü BİRLİĞİ sözdizimi doğru çalışmaz mümkündür, ama en azından çok yakında.
Ben ikinci sorgu ile bu hatayı alıyorum: # 1064 - Eğer SQL sözdizimi bir hata var; "bs ) ut WHERE ut.User_Email = '[email protected]' VE ut.DateTime> NOW() - INTER 'yakınında kullanmak için doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin – babonk