我试图查询4个表。它们都受外键约束,并且它们都定义了关系。我遇到的问题是我似乎无法获得我追求的价值。
我有4张桌子:
TDeviceReport:
ixDeviceReport(int, primary key)
ixDeviceType(int, foreign key)
ixReportType(int, foreign key)
TReportType:
ixReportType(int, primary key)
sReportType(string)
TReportSection
ixReportSection(int, primary key)
ixReportType(int, foreign key)
ixSection(int, foreign key)
和TSection: ixSection(int,primary key) sSection(字符串)
我正在尝试获取属于TSection.sSection
的所有部分名称(deviceTypeID
)。问题是我对sqlAlchemy
有点新,不知道如何去做。我试图设置一个查询,但我没有得到任何结果。
for section in DBSession.query(TDeviceReport, TReportType, TReportSection, TSection).join(TReportType).join(TReportSection).join(TSection).filter(TDeviceReport.ixDeviceType==deviceTypeID).all():
print "------------------------------------------------"
print "section : " + str(section )
任何指导都将不胜感激
修改 我稍微重新查询了一下这是打印的结果
#get section headers
sections = []
for section in DBSession.query(TSection.sSection).join(TReportSection).join(TReportType).join(TDeviceReport).filter(TDeviceReport.ixDeviceType==deviceTypeID).all():
sections.append(str(section[0]))
print "section: " + str(section) + "------------------------------------------"
印刷结果:
section: (u'Trip Unit Results',)------------------------------------------
section: (u'Generic Header',)------------------------------------------
section: (u'Circuit Breaker Data',)------------------------------------------
section: (u'Trip Unit Data',)------------------------------------------
section: (u'Sensor Data',)------------------------------------------
section: (u'Insulation Resistance',)------------------------------------------
section: (u'Contact Resistance',)------------------------------------------
section: (u'Breaker Inspection',)------------------------------------------
section: (u'Cell Inspection',)------------------------------------------
答案 0 :(得分:1)
您可以尝试此print section.TSection.sSection
。 'section'应该是一个实例,在这种情况下,这是有效的。如果这不起作用,那么您的查询和加入内容是错误的,在这种情况下,这会有所帮助:http://docs.sqlalchemy.org/en/rel_0_9/orm/query.html
你没告诉我这是什么打印:print "section : " + str(section )
。如果你能告诉我,如果它是空的那么你的查询是错误的,那将会有很大的帮助。