Làm thế nào để đạt được tham gia bên trong bằng cách sử dụng SQLAlchemy? Tôi cố gắng để làm cho đơn giản trò chuyệnLàm thế nào để đạt được tham gia bên trong bằng cách sử dụng SQLAlchemy?
class Base(object):
def __tablename__(self):
return self.__name__.lower()
id = Column(Integer, primary_key=True)
Base = declarative_base(cls=Base)
class PlayerModel(Base):
__tablename__ = 'players'
username = Column(String(30), nullable=False)
email = Column(String(75), nullable=False)
password = Column(String(128), nullable=False)
class MessageModel(Base):
__tablename__ = 'messages'
player_id = Column(Integer,ForeignKey('chats.id'), nullable=False)
message = Column(String(2000), nullable=False)
time = Column(TIMESTAMP, server_default=func.now())
def __repr__(self):
return "<Message('%s')>" % (self.type)
Tôi muốn đọc tất cả các thư trẻ hơn một số ngày và trong kết quả để có danh sách các từ điển như
[{'username':'x','message':'y','time':'number0'},{'username':'y','message':'z','time':'number1'},
{'username':'x','message':'zz','time':'number'}]
và cho rằng tôi cần bên tham gia. Làm thế nào để làm cho điều này để làm việc?
Điều này không tạo ra một * bên trong * tham gia, nó chỉ tạo ra một tham gia, mà thường mặc định để bên ngoài tham gia bên ngoài. –
(Trái) các kết nối bên ngoài được tạo bằng phương thức 'outerjoin'. –
@ daniel-van-flymen Xem [tài liệu SQLAlchemy về phương thức 'join'] (http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.join) để tham khảo. Nếu bạn sử dụng tham số từ khóa 'isouter' thì JOIN sẽ là một OUTER JOIN. Nó mặc định là tham gia "bên trong". –