Latest posts on запрос вида select max(asks.date) from asks where (asks.rubric = 2) в sqlalchemy topichttps://python.su/forum/topic/37128/2019-04-27T10:15:04+03:00Общий :: Базы данных :: запрос вида select max(asks.date) from asks where (asks.rubric = 2) в sqlalchemy
2019-04-27T10:15:04+03:00BlackShark201119Отвечаю сам.<br/>Код, приблизительно, будет следующий:<br/><div class="code"><pre> <span class="n">q</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">query</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">func</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">Asks</span><span class="o">.</span><span class="n">date</span><span class="p">),</span> <span class="n">Asks</span><span class="o">.</span><span class="n">user_id</span><span class="p">,</span> <span class="n">Asks</span><span class="o">.</span><span class="n">title</span><span class="p">,</span> <span class="n">Asks</span><span class="o">.</span><span class="n">date</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">Asks</span><span class="o">.</span><span class="n">rubric</span> <span class="o">==</span> <span class="n">rubric</span><span class="p">)</span>
</pre></div>Про миграцию не критично, но актуально)
Общий :: Базы данных :: запрос вида select max(asks.date) from asks where (asks.rubric = 2) в sqlalchemy
2019-04-25T09:59:59+03:00BlackShark201056Приветствую!<br/><br/>Есть модель вроде этой (flask):<br/><div class="code"><pre> <span class="k">class</span> <span class="nc">Asks</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
<span class="n">__tablename__</span> <span class="o">=</span> <span class="s1">'asks'</span>
<span class="nb">id</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Integer</span><span class="p">,</span> <span class="n">nullable</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">date</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">DateTime</span><span class="p">())</span>
<span class="o">.</span>
<span class="o">.</span>
<span class="n">rubric</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Integer</span><span class="p">,</span> <span class="n">nullable</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">RUB_FORUM_GEN</span><span class="p">)</span>
</pre></div>Не могу понять как взять запись с последней датой и определённой рубрикой??? Испробовал множество вариантов, вот последний из них:<br/><div class="code"><pre> <span class="n">Asks</span><span class="o">.</span><span class="n">query</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">Asks</span><span class="o">.</span><span class="n">rubric</span> <span class="o">==</span> <span class="n">rubric</span><span class="p">)</span><span class="o">.</span><span class="n">func</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">Asks</span><span class="o">.</span><span class="n">date</span><span class="p">)</span>
</pre></div>И попутный вопрос, если не затруднит, можете объяснить, при миграции БД через flask_migrate, пока не выставишь nullable=False для всех полей мигрируемых таблиц, миграция не выполняется, т.е. с ошибками, это нормально? <br/>