我有一个包含业务信息的业务表和一个包含不同业务的事务的事务表。我试图创建一个查询,给我一个业务名称和业务的列表,如果在过去45天没有任何交易记录。我当前的查询是使用not in语句来查找业务,而不是在过去45天内所有事务的嵌套查询中查找业务,但始终超时。
SELECT b.businessid,b.name FROM businesses b where b.businessid not in (SELECT tx.businessid FROM transactions tx
group by businessid
having max(dateAdded) > now()-interval 60 day)对于如何优化这一点,使其运行更加顺利,有什么想法吗?
发布于 2022-01-21 03:03:36
最简单的方法可能是使用现有逻辑:
SELECT businessid, name
FROM businesses b
WHERE NOT EXISTS (SELECT 1 FROM transactions t
WHERE t.businessid = b.businessid AND
t.dateAdded > NOW() - INTERVAL 45 DAY);https://stackoverflow.com/questions/70795853
复制相似问题