SQLAlchemy Flacon de filtre de requête de combiner les résultats de deux modèles
Je vais essayer de commander un utilisateur grâce(postes) par date_registered.
À l'heure actuelle, il y a deux requêtes pour obtenir deux listes, puis manuellement de combiner et de les re-commande. Un utilisateur peut être un donneur de remercier ou un récepteur. Un merci a toujours un seul donneur, cependant, peut avoir plusieurs récepteurs. Donc j'ai un Merci et un ThankReceivedByUser modèles d'arriver à des résultats.
class Thank(db.Model):
id = db.Column(db.Integer, primary_key = True)
giver_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable = False)
status = db.Column(db.SmallInteger, nullable = False)
date_registered = db.Column(db.DateTime, nullable = False)
class ThankReceivedByUser(db.Model):
id = db.Column(db.Integer, primary_key = True)
thank_id = db.Column(db.Integer, db.ForeignKey("thank.id"), nullable = False)
receiver_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable = False)
status = db.Column(db.SmallInteger, nullable = False)
date_registered = db.Column(db.DateTime, nullable = False)
Il serait bon d'obtenir quelques conseils sur la construction d'une seule requête, si possible.
Quelles sont les deux listes voulez-vous dire: liste de grâce et une liste de grâce?
OriginalL'auteur Dogukan Tufekci | 2013-03-06
Vous devez vous connecter pour publier un commentaire.
Je suis venu avec une solution à ce problème:
OriginalL'auteur Dogukan Tufekci
Si je comprends votre question correctement, vous souhaitez combiner grâce donnés et reçus par un utilisateur dans une seule requête. Si oui, vous devez
UNION
deux requêtes, l'une de qui sélectionne grâce, tandis qu'un autre a reçu. Ensuite, vous pouvez trier les résultats de cette requête combinée. Voici comment votre requête devrait ressembler à:OriginalL'auteur Audrius Kažukauskas