Próbuję napisać zapytanie, aby uzyskać najnowsze komentarze do wielu pozycji.MySQL i SQLAlchemy: pobieranie N ostatnich komentarzy do wielu pozycji
Obecnie jestem pętli poprzez elementów z kwerendy za sztukę:
for i in itemIds:
Comment.query.filter_by(itemId=i).order_by(Comment.id.desc()).limit(3)
Ale to jest bardzo powolny.
Chciałbym mieć jedno zapytanie, które zawiera wszystkie komentarze, ale nie wiem jak. Próbowałem używać union
, ale nie udało mi się go uruchomić. Wygląda na to, że są problemy z MySQL, order_by
i union
. Próbuję coś z tego powodu:
a = Comment.query.filter_by(itemId=1).order_by(Comment.id.desc()).limit(3)
b = Comment.query.filter_by(itemId=2).order_by(Comment.id.desc()).limit(3)
u = union_all(a,b)
DB.session.query(Comment).select_from(u).all()
Ale to nie działa. Skarży się na "nieprawidłowe użycie UNION i ORDER BY".
Nie jestem ninja MySQL lub SQLAlchemy i od wielu godzin walę w to.
Pomoc, proszę! Wszelkie wskazówki i porady będą bardzo mile widziane.
niesamowite .. to robi. Dzięki wielkie! – aspiringwebninja