ich möchte mit dem Ergebnis eines Querys einen weiteren Query erstellen bzw. ausführen. Leider bekomme ich das Ergebnis nicht in eine String damit ich diesen in dem neuen Query nutzen kann:
query: str = "SELECT DISTINCT TH.HZ_ID FROM TEAMS T INNER JOIN Team_Helfer TH ON TH.Team_ID = T.ID \
WHERE T.StartDatum_Ist >= '"+str(start)+"' AND T.StartDatum_Ist <= '"+str(end)+"' \
AND TH.Satz_ID IN ("+str(Teambonusbunker)+")"
fbird = fbconn.cursor()
fbird.execute(query)
hzids = fbird.fetchall()
print(hzids)
#for row in hzids:
# print(row)
queryteamid = "SELECT DISTINCT TH.Team_ID FROM Team_Helfer TH INNER JOIN Teams T ON T.ID = TH.Team_ID WHERE T.StartDatum_Ist >= '"+str(start)+"' AND T.StartDatum_Ist <= '"+str(end)+"' \
AND HZ_ID IN ("+str(hzids)+" ORDER BY Team_ID"
fbird = fbconn.cursor()
fbird.execute(queryteamid)
Kann mir jemand den passenden Tip geben was ich machen muss?
Im Moment bekomme ich einen Dynamic SQL Error. Das liegt aber daran denke ich das ich nun eine Liste in mein SQL einfüge???
Du hast doch an anderer Stelle schon parametrisierte SQL queries verwandt. Warum ploetzlich dieses grauenvolle String-Gemansche?
Und ein SQL Ergebnis mit fetchall ist eine Liste von Tupeln. Die kannst du nicht einfach per Holzhammer in einen String wandeln, und hoffen, dass das dann schon geht.
Wenn es nur darum geht, die Menge der IDs aus einem Query in dem anderen zu benutzen, dann sollte das einfach ein Sub-Query sein. Das spart sowohl Python als auch der Datenbank Arbeit.
@cbesi: wie schon geschrieben, man formatiert keine Ergebnisse in eine SQL-Abfrage hinein!
Kannst Du mal Deine Tabellenstruktur beschreiben und sagen, welche Informationen Du mit diesen Abfragen erhalten möchtest? Also nicht auf technischer Ebene, sondern von der Anwendersicht aus?