sql >> Databáze >  >> RDS >> Oracle

Pokus o odstranění z více tabulek pomocí SQL

delete dokáže zpracovat pouze jednu tabulku najednou, takže budete potřebovat tři příkazy:

DELETE FROM upklist 
WHERE  session_id = (SELECT session_id 
                     FROM   usession 
                     WHERE  delete_session_id IS NULL 
                            AND user_id = (SELECT user_id 
                                           FROM   users 
                                           WHERE  REGEXP_LIKE(USER_NAME, 
                                                  'awpeople', 'i'))); 

DELETE FROM projshar 
WHERE  session_id = (SELECT session_id 
                     FROM   usession 
                     WHERE  delete_session_id IS NULL 
                            AND user_id = (SELECT user_id 
                                           FROM   users 
                                           WHERE  REGEXP_LIKE(USER_NAME, 
                                                  'awpeople', 'i'))); 

DELETE FROM usession 
WHERE  session_id = (SELECT session_id 
                     FROM   usession 
                     WHERE  delete_session_id IS NULL 
                            AND user_id = (SELECT user_id 
                                           FROM   users 
                                           WHERE  REGEXP_LIKE(USER_NAME, 
                                                  'awpeople', 'i'))); 

Všimněte si, že protože vnitřní dotaz závisí na usersession , měli byste z něj smazat poslední .



  1. Povolte SQL Server Agent prostřednictvím SSMS

  2. Plné připojení k SQL

  3. MySQL dotaz citlivý na velká a malá písmena

  4. Spouštěče a zámek tabulky v MySQL