您在示例中缺少 where 。试一试...您需要从另一个角度查看查询...根据您在下面的评论,这里有一个简单的方法来获取不同日期限制的男性和女性。如果没有 UNION,您可能可以在一个声明中做到这一点,但我认为工会保留了男性和女性不同日子的逻辑。
SELECT * from donor
LEFT JOIN donation ON donor.id=donation.donor_id
AND donation.donation_date > NOW() - INTERVAL 120 day
WHERE donation.donation_id IS NULL
AND donor.sex='female'
UNION
SELECT * from donor
LEFT JOIN donation ON donor.id=donation.donor_id
AND donation.donation_date > NOW() - INTERVAL 90 day
WHERE donation.donation_id IS NULL
AND donor.sex='male'
基本上这个查询说“给我捐赠者表中的所有人,包括那些在 90 天内捐赠的人的信息,然后只显示那些没有捐赠细节的人(也就是 90 天内没有捐赠的人)。