擅长:python、mysql、java
<p>当然可以将不同的表与sqlalchemy联合起来,您只需指定从每个表中提取哪些列,就可以正确地组合它们。假设您有实体<code>A</code>和<code>B</code>,请执行以下操作:</p>
<pre><code>from sqlalchemy.sql.expression import label
...
a = session.query(label('col1', A.someColumn))
b = session.query(label('col1', B.someOtherColumn))
both = a.union_all(b)
</code></pre>
<p>在这种情况下,您需要注意的是,如果不能将<code>A.someColumn</code>和<code>B.someOtherColumn</code>强制为同一类型,您的dbms可能会崩溃:)</p>
<p>有关“真实世界”中的示例,请参见第85、87和90行:</p>
<p><a href="https://gerrit.wikimedia.org/r/#/c/147312/4/wikimetrics/metrics/rolling_active_editor.py" rel="nofollow">https://gerrit.wikimedia.org/r/#/c/147312/4/wikimetrics/metrics/rolling_active_editor.py</a></p>
<p>这将创建一个子查询,其中包含两个联合在一起的不同表。该子查询随后在联接中使用,其列通常通过<code>.c.column</code>访问。</p>