首页 > 解决方案 > 多条件查询 SQLAlchemy

问题描述

我尝试使用许多不同的方法在 SQLAlchemy 中执行此代码,但它们都不起作用。有人可以帮我吗

SELECT * 
       FROM news_nlp_sentences 
       WHERE sentence_id IN (SELECT MAX(sentence_id) 
       FROM news_nlp_sentences 
WHERE "date_created" BETWEEN '2012-12-28' AND '2012-12-31' 
       AND "domain" = 'marketing_features' 
       GROUP BY sentence);

我试过了

page = ConditionalSearch.query.filter(ConditionalSearch.sentence_id.in_(func.max(ConditionalSearch.sentence_id)), ConditionalSearch.domain == domain, ConditionalSearch.date_created>=from_date, ConditionalSearch.date_created<=to_date)

我什至试过

sql_str = "SELECT * FROM news_nlp_sentences WHERE sentence_id in (SELECT MAX(sentence_id) FROM news_nlp_sentences WHERE date_created BETWEEN {} AND {} AND {} = {} GROUP BY sentence);".format(str(from_date), str(to_date), str(column_name), str(key_word)) The sql_str give me error about BETWEEN

预计会得到具有不同句子的列,因为数据库中有一些相同word_id的句子有差异。如果我不尝试得到它,它会很好,MAX(sentence_id)但我不想一遍又一遍地重复相同的句子

标签: pythonsqlalchemy

解决方案


推荐阅读