Supponiamo che io sono le seguenti tabelle:Come fare un JOIN in SQLAlchemy su 3 tabelle, dove uno di loro sta mappando tra gli altri due?
Articles
con campiarticle_id
,title
Tags
con campitag_id
,name
ArticleTags
con campiarticle_id
,tag_id
e mi auguro di trovare tutti gli articoli che hanno un determinato tag. Come posso creare questo complicato join in SQLAlchemy?
In SQL sarebbe simile:
SELECT a.article_id, a.title FROM Articles AS a
JOIN ArticleTags AS at ON a.article_id = at.article_id
JOIN Tags AS t ON at.tag_id = t.tag_id
WHERE t.name = 'tag_name'
io non riesco a capire come farlo in SQLAlchemy. Sto usando ArticleTags
solo come tabella "secondaria" e non riesco a capire come coinvolgerlo nel JOIN.
Qualcuno può aiutare?
Grazie, Boda Cydo.
Sembra buono. Ma un problema: non ho mappato 'ArticleTags 'in nessuna classe. Uso semplicemente 'ArticleTags' nella clausola secondaria nelle classi mappate' Articoli' e 'Tag'. Dovrei mappare 'ArticleTags' in una classe allora? – bodacydo
Se questo non funziona, dovrai fornire le parti rilevanti del tuo modello. – ebo
La seconda soluzione funziona ma ho notato che effettua una sotto-selezione. I sottoselezionati sono OK? – bodacydo