我一直在努力获得一个适用于等效 SQLAlchemy 代码的 SQL Select 语句。它涉及两个表。
一个标签表
class Tags(Base):
__tablename__ = 't_tags'
uid = Column(Integer, primary_key=True)
category = Column(Enum('service', 'event', 'attribute', name='enum_tag_category'))
name = Column(String(32))
以及一张将他们映射到其原始父母的表格
class R_Incident_Tags(Base):
__tablename__ ='r_incident_tags'
incident_uid = Column(String(48), ForeignKey('t_incident.uid'), primary_key=True)
tag_uid = Column(Integer, ForeignKey('t_tags.uid'), primary_key=True)
tag = relationship("Tags", backref="r_incident_tags")
event_uid 是用于标识父级的唯一字符串。
我一直在努力在 SQLAlchemy 中表示的 SELECT 如下
SELECT DISTINCT s.name, e.name, count(e.name)
FROM "t_tags" AS s,
"t_tags" AS e,
"r_incident_tags" AS sr,
"r_incident_tags" AS er
WHERE s.category='service' AND
e.category='event' AND
e.uid = er.tag_uid AND
s.uid = sr.tag_uid AND
er.incident_uid = sr.incident_uid
GROUP BY s.name, e.name
任何帮助都将不胜感激,因为经过一整天的努力,我什至还没有接近完成工作。
最亲切的问候!