use*_*630 4 sql oracle sql-delete
我的应用程序中有 4 个表:
最后三个表包含一个名为 的字段session_id。
在下面的代码中,括号中的部分用于session_id从usession用户“awpeople”的表中获取所有值。
问题是如何将这个结果集读入一个数组并从session_id数组结果中的所有三个表中删除。
代码:
DELETE FROM usession,
upklist,
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')));
Run Code Online (Sandbox Code Playgroud)
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')));
Run Code Online (Sandbox Code Playgroud)
请注意,由于内部查询依赖于usersession,您应该最后从中删除。
| 归档时间: |
|
| 查看次数: |
29770 次 |
| 最近记录: |