[FIXED] SQL – Wie fügt man in eine Tabelle ein, basierend auf IDs, die in einer anderen Tabelle gefunden wurden?

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 useridmit 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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like