Korzystanie SQLAlchemy 0.7.1 i MySQL 5.1 bazy danych, mam wiele-do-wielu relacja skonfigurować w następujący sposób:SQLAlchemy: Filtr z członkostwa w co najmniej jeden wiele-do-wielu pokrewnych stół
user_groups = Table('user_groups', Base.metadata,
Column('user_id', String(128), ForeignKey('users.username')),
Column('group_id', Integer, ForeignKey('groups.id'))
)
class ZKUser(Base, ZKTableAudit):
__tablename__ = 'users'
username = Column(String(128), primary_key=True)
first_name = Column(String(512))
last_name = Column(String(512))
groups = relationship(ZKGroup, secondary=user_groups, backref='users')
class ZKGroup(Base, ZKTableAudit):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
name = Column(String(512))
Użytkownicy mogą należeć do wielu grup, a grupy mogą zawierać wielu użytkowników.
Próbuję wykonać zapytanie SQLAlchemy, które zwraca tylko tych użytkowników, którzy należą do co najmniej jednej grupy z listy grup.
Grałem z funkcją in_
, ale to wydaje się działać tylko przy testowaniu wartości skalarnych dla członkostwa na liście. Nie jestem pisarzem SQL, więc nawet nie wiem, jakiego rodzaju wymagałoby to oświadczenie SELECT
.
Jak filtrować według członkostwa we wszystkich tabelach powiązanych wiele do wielu? – WebPal
Twoja odpowiedź odnosi się do 'ZKContact' i' contacts', ale nie znajdują się one w twoim kodzie w pytaniu. Miałeś na myśli ZKUser? –
W odpowiedzi na pytanie o oddanie głos używają różnych słów kluczowych niż pytań, a trudno jest określić, jakie jest możliwe rozwiązanie. – Drachenfels