Tar*_*ara 0 python sqlalchemy flask-sqlalchemy
请注意,这是针对核心的,而不是针对 orm 的。
希望有人能帮助我解决这两个问题:
1)看起来很outerjoin简单join,但是如何进行内连接呢?
2)进行多重连接的语法是什么。我能够进行一次连接,但不确定多个连接的语法。
我的第一个连接看起来像这样:
select([...]).select_from(outerjoin(a, b))
Run Code Online (Sandbox Code Playgroud)
但此语法执行两个连接时会产生一些错误:
select([...]).select_from(outerjoin(a, b).select_from(outerjoin(ma, tr))
Run Code Online (Sandbox Code Playgroud)
提前致谢。
join默认情况下执行 INNER JOIN。带参数outerjoin调用。joinisouter=True如果我们想要的sql查询是
SELECT a.col1, b.col2, c.col3
FROM a
LEFT JOIN b ON a.col1 = b.col1
LEFT JOIN c ON c.col1 = b.col2
Run Code Online (Sandbox Code Playgroud)
那么 sqlalchemy-core 语句应该是:
select(
[a.c.col1, b.c.col2, c.c.col3]
).select_from(
a.outerjoin(
b, a.c.col1 == b.c.col1
).outerjoin(
c, b.c.col2 == c.c.col1
)
)
Run Code Online (Sandbox Code Playgroud)
on clause如果关系已定义且不含糊,则不需要。这些outerjoin函数可以嵌套而不是链接(就像您对简单连接所做的那样),即
outerjoin(outerjoin(a, b), c)
Run Code Online (Sandbox Code Playgroud)
但我发现该表格可读性较差。
| 归档时间: |
|
| 查看次数: |
2344 次 |
| 最近记录: |