簡體   English   中英

SqlAlchemy 1.0.0在未定義外鍵的地方添加“ AND NULL”

[英]SqlAlchemy 1.0.0 add 'AND NULL' to join where no foreign key defined

我正在MySql服務器上使用sqlalchemy版本1.0.0在python中構建查詢。 我們在架構中沒有定義外鍵。

我想構造下一個查詢:

select s.visit_date, ss.store_number_1, count(p.pk) num_of_probes
from probedata.session s
inner join probedata.scene ps
on s.session_uid = ps.session_uid
inner join probedata.probe p
on ps.pk = p.scene_fk
inner join static.stores ss
on s.store_fk = ss.pk
where s.status = 'Completed'
group by s.visit_date, ss.store_number_1

查詢的代碼是:

 num_of_probes = session.query(StoreSession.visit_date, Stores.store_number_1, func.count(Probe.pk).label('num_of_probes')) \
            .select_from(StoreSession) \
            .join(Scene, StoreSession.session_uid == Scene.session_uid) \
            .join(Probe, Scene.pk ==Probe.scene_fk) \
            .join(Stores, StoreSession.store_fk == Stores.pk) \
            .filter(StoreSession.status == 'Completed') \
            .group_by(StoreSession.visit_date, Stores.store_number_1)

我收到的查詢是:

SELECT probedata.session.visit_date AS probedata_session_visit_date, static.stores.store_number_1 AS static_stores_store_number_1, count(probedata.probe.pk) AS num_of_probes 
FROM probedata.session 
JOIN probedata.scene 
ON probedata.session.session_uid = probedata.scene.session_uid AND NULL 
JOIN probedata.probe ON probedata.scene.pk = probedata.probe.scene_fk AND NULL 
JOIN static.stores ON probedata.session.store_fk = static.stores.pk AND NULL 
WHERE probedata.session.status = :status_1 
GROUP BY probedata.session.visit_date, static.stores.store_number_1

問題是sqlachemy聯接將“ AND NULL”添加到sql查詢中的每個聯接。

我知道這樣做是因為沒有定義外鍵,並且SqlAlcemy 0.9.8沒有添加它。

如何在1.0.0中消除“ AND NULL”條件?

謝謝,可人

有關此問題的相關信息: 聯接上的AND AND NULL條件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM