मेरे पास प्रत्येक-दूसरे के अंदर लूप के लिए 2 है। लूप 1 में प्रत्येक पंक्ति 'ए', 'बी', 'सी' के लिए, मुझे लूप 2 में समूह 'एक्स' के सभी माता-पिता को खोजने के लिए पदानुक्रमित पेड़ तक पहुंचने की आवश्यकता है। यह मुझे सीटीई का उपयोग करता है जहां मुझे प्रत्येक पंक्ति के लिए अलग-अलग पथ खोजने की आवश्यकता होती है। एक लूप में सीटीई का उपयोग करना यह सुनिश्चित करने का समाधान नहीं है कि मैं प्रत्येक समूह आईडी के लिए कहां से मिलान कर सकता हूं। इस लिंक भेजा, लेकिन कुप्पी ढांचे का उपयोग कर क्रॉन जॉब के लिए बहुत Looping hierarchy CTEपाइथन ट्रैवर्स सीटीई?
कोड स्निपेट बाहर नहीं कर सके:
s = select([rt_issues]).\
where(
and_(
rt_issues.c.status !='Closed',
rt_issues.c.assigned_to != None
))
rs = conn.execute(s)
if rs.rowcount > 0:
s4 = text('with recursive rec_grp as(select id, parent_id, name, head, 1 as level, array[id] as path_info from groups union all select grp1.id, grp1.parent_id, grp1.name, grp1.head, rc.level + 1, rc.path_info||grp1.id from groups grp1 join rec_grp rc on grp1.id = rc.parent_id) select distinct id, parent_id, name, head, path_info from rec_grp order by id')
rs4 = conn.execute(s4)
for r in rs:
head_list = []
hierarchical_grps = []
for rr in rs4:
if ((rr['path_info'][0] == r[rt_issues.c.assignee_group])):
for g in rr['path_info']:
hierarchical_grps.append(g)
hierarchical_grps = list(set(hierarchical_grps))
send_pending_mail(hierarchical_grps, r['id'])
print hierarchical_grps, 'hierarchical_grps'
exit(0)
मैं मेल करने के लिए पदानुक्रम में assignee_group के लिए सभी समूह सिर भेजने की जरूरत है मुद्दा। यह कैसे हासिल किया जा सकता है। लूप का सही तरीके से उपयोग कैसे करें? मैं फ्लास्क के साथ केवल sqlalchemy कोर, postgresql, पायथन का उपयोग कर रहा हूँ। मुझे इसके लिए सटीक कोड चाहिए।
क्या काम करता है नीचे टुकड़ा है:
rs4 = con.execute(s4)
for rr in rs4:
if rr['head']:
head_list.append(rr['id'])
print 'group heads:', head_list
इस से क्वेरी संभालने जाता है:
mgroup = None
s = select([rt_issues]).\
where(
and_(
rt_issues.c.status !='Closed',
rt_issues.c.assigned_to != None
))
rs = conn.execute(s)
if rs.rowcount > 0:
for r in rs:
head_list = []
hierarchical_grps = []
mgroup = r[rt_issues.c.assignee_group]
s4 = text('with recursive rec_grp as(select id, parent_id, name, head, 1 as level, array[id] as path_info from groups where id=' +str(mgroup) + 'union all select grp1.id, grp1.parent_id, grp1.name, grp1.head, rc.level + 1, rc.path_info||grp1.id from groupsgrp1 join rec_grp rc on grp1.id = rc.parent_id) select distinct id,parent_id, name, head, path_info from rec_grp order by id')
rs4 = conn.execute(s4)
for rr in rs4:
if ((rr['path_info'][0] == r[rt_issues.c.assignee_group])):
for g in rr['path_info']:
hierarchical_grps.append(g)
hierarchical_grps = list(set(hierarchical_grps))
print hierarchical_grps, 'hierarchical_grps'
send_pending_mail(hierarchical_grps, r['id'])
exit(0)
क्या आप टेबल संरचना दिखा सकते हैं? यहां, या http://sqlfiddle.com/#!15 –