sql >> Database >  >> RDS >> Oracle

Proberen te verwijderen uit meerdere tabellen met behulp van SQL

delete kan maar één tabel tegelijk aan, dus je hebt drie statements nodig:

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

Merk op dat aangezien de innerlijke query afhankelijk is van usersession , u moet er laatste van verwijderen .



  1. update kolommenwaarden met kolom van een andere tabel op basis van voorwaarde

  2. Kenmerken laden van gekoppelde modellen met sequelize.js

  3. Een deel van een veld selecteren met een regex

  4. MySQL:hoe voorkom je het invoegen van een rij met alle kolommen =NULL?