我使用PostgreSQL的ARRAY存储图像标签。
如何在SQLAlchemy中编写ORM查询,该查询返回表中找到的所有标记的集合,用于以下模型:
from sqlalchemy.dialects.postgresql import ARRAY
class Image(Base):
__tablename__ = 'images'
id = Column(String, primary_key=True)
tags = Column(ARRAY(Unicode))
我想我需要使用横向连接,但我不知道如何使用SQLAlchemy的ORM语法来实现它。
PG版本:9.5
答案 0 :(得分:2)
您可以使用func.unnest
:
from sqlalchemy import func
session.query(func.unnest(Image.tags)).distinct().all()
distinct()
将使结果成为集合,unnest
将数组拆分为单独的行(如postgresql函数unnest
)。