我試圖複製這種原始的SQL到適當的SQLAlchemy的實現,但很多的嘗試後,我無法找到一個妥善的辦法做到這一點: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子句。
任何人都可以伸出援手嗎?
謝謝!
這些嘗試中有些不起作用的是什麼? – univerio