【发布时间】:2014-07-28 04:30:52
【问题描述】:
我们的应用程序中有 4 个表:
- 用户
- 使用会话
- upklist
- 项目共享
最后三个表包含一个名为 session_id 的字段。
在下面的代码中,括号中的部分用于从usession 表中为用户“awpeople”获取所有session_id 值。
问题是我如何将这个结果集读入一个数组并从数组结果中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')));
【问题讨论】:
-
您能说明一下您要达到的目标吗?您提到将结果读入数组听起来像是一个尝试的解决方案,而不是实际的问题。如果你需要从 3 个表中删除,你只需要运行 3 个删除语句。
-
您只能在任何给定时间从单个表中删除 - 可以同时从多个表中删除
-
添加了
oracle标签,因为regexp_like
标签: sql oracle sql-delete