Ich habe das folgende Szenario:Verwenden Sie UPDATE-Anweisung in einem CTE-Ausdruck SQL
Ich habe Tickets (= Vorfälle), die mehrere Aktivitäten haben.
Ein Vorfall jedoch kann ein Kind Ticket (+ grand Kinderticket) und so weiter:
Deshalb, was ich tun möchte, ist, alle Aktivitäten der (Enkel- hinzufügen) Kinder, zu denen seiner Eltern. So
:
Ich begann mit allen Unterelementen eines einzigen Ticket abzurufen, habe ich einen CTE dafür:
With TicketTree(iID, pID)
as
(
Select incidentID, parentID FROM incident where incidentID = 1
UNION ALL
SELECT incidentID, parentID FROM incident INNER JOIN TicketTree R on parentID = R.iID
)
Select * from TicketTree
JOIN activity on TicketTree.iID = activity.incidentID
Die Abfrage funktioniert und ruft alle die Unterfälle.
Meine Frage ist jetzt, ist es möglich, UPDATE
die Aktivitätstabelle und die incidentID
aller Kinder auf die eine der Eltern (mit einer Abfrage) zu setzen?
Ich habe versucht:
UPDATE activity
set incidentID = 1
WHERE incidentID IN(
Select iID from TicketTree
JOIN activity on TicketTree.iID = activity.incidentID
)
Es sagt mir, dass 11 Zeilen betroffen waren aber die Aktivitäten der Kinder nicht ändern?
Was mache ich falsch?
aber das Problem ist, dass ich die Aktivitätstabelle (und nicht der Vorfall Tabelle) aktualisiert werden soll: / – user3127554