Oracle
 sql >> база данни >  >> RDS >> Oracle

Опит за изтриване от множество таблици с помощта на SQL

delete може да обработва само една таблица наведнъж, така че ще ви трябват три оператора:

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

Имайте предвид, че тъй като вътрешната заявка разчита на usersession , трябва да изтриете от него последния .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Бавна производителност за факторинг на дълбоко вложени подзаявки (CTE)

  2. Получаване на изход в плосък файл с помощта на oracle на UNIX

  3. Дата на Oracle - Как да добавите години към дата

  4. Защо sqlplus не се свързва?

  5. показване на имената на колоните на таблицата на Oracle