Jeśli mam kwerendy SQLAlchemy ORM:SQLAlchemy ORM: modyfikowanie kolumn zwracanych przez zapytania
admin_users = Session.query(User).filter_by(is_admin=True)
jest to możliwe do modyfikowania kolumn zwracanych przez tego zapytania?
Na przykład tak, że mogę wybrać tylko kolumny User.id
, i użyć jej w sub zapytania:
admin_email_addresses = Session.query(EmailAddress)\
.filter(EmailAddress.user_id.in_(admin_users.select_columns(User.id))
Uwaga: metoda .values()
nie będzie działać, ponieważ wykonuje zapytanie i zwraca iterable wyników (tak, ex, EmailAddress.user_id.in_(admin_users.values(User.id))
wykona dwa zapytania, a nie jeden).
Wiem, że mógłbym zmodyfikować pierwsze zapytanie na Session.query(User.id)
, ale zastanawiam się, w jaki sposób mogę zmodyfikować kolumny zwrócone przez zapytanie.
To prawda, że w przykładzie I, pod warunkiem, od 'JOIN' jest poprawne rozwiązanie. Ponieważ jednak nie odnosi się do zadawanego mi pytania, zamierzam przyjąć odpowiedź Zzżeka. –
@DavidWolever: Wystarczająco fair – van