Ausgabe
Ich bräuchte so etwas wie diesen Pseudocode:
FOREACH USERID FOUND IN (SELECT DISTINCT USERID FROM USERAUTHORIZATIONS WHERE AUTHID <> 11)
INSERT INTO USERAUTHORIZATIONS (USERID, AUTHID) VALUES (USERID, 11)
Lösung
Ich denke, Sie suchen wahrscheinlich nach etwas wie
INSERT INTO userauthorizations
SELECT DISTINCT userid, 11
FROM userauthorizations ua1
WHERE NOT EXISTS
(SELECT *
FROM userauthorizations ua2
WHERE ua2.userid = ua1.userid
AND ua2.authid = 11)
Dadurch werden alle Benutzer gefunden, die derzeit kein authid
=11 haben, und eine Zeile dafür userid
mit authid=11 hinzufügen.
Beachten Sie, dass sich dies von Ihrem Pseudocode unterscheidet (SELECT DISTINCT USERID FROM USERAUTHORIZATIONS WHERE AUTHID <> 11)
, der Benutzer findet, die mindestens einen Eintrag haben, der nicht authid
=11 ist.
Beantwortet von – EdmCoff
Antwort geprüft von – Clifford M. (FixError Volunteer)