sql >> Database teknologi >  >> RDS >> Oracle

Forsøger at slette fra flere tabeller ved hjælp af SQL

delete kan kun håndtere én tabel ad gangen, så du skal bruge tre sætninger:

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'))); 

Bemærk, at da den indre forespørgsel er afhængig af usersession , bør du slette fra den sidste .



  1. Forbindelse til SQL Server virker nogle gange

  2. Hvordan kan jeg returnere '0' fra forespørgsel i pgsql, hvis rækken ikke eksisterer?

  3. får værdier, der ikke findes i mysql-tabellen

  4. MySQL fremmednøgle bruger mere end ét felt til at referere til en primær nøgle fra en anden tabel