我正在尝试将这个原始的SQL语句转换为合适的SQLAlchemy实现,但是经过多次尝试后,我无法找到一个合适的方法:
SELECT *
FROM images i
WHERE NOT EXISTS (
SELECT image_id
FROM events e
WHERE e.image_id=i.id AND e.chat_id=:chat_id)
ORDER BY random()
LIMIT 1
我最接近的结果是:
session.query(Image).filter(and_(Event.image_id == Image.id, Event.chat_id == chat_id)).order_by(func.random()).limit(1)
但我似乎找不到如何使用NOT EXISTS子句。
有人能帮个忙吗?
谢谢!