1

我正在使用代码生成器。我有两张桌子。在一张表中,我有 user_id 和这个 user_id 的几个文档。在第二个表中,有这个 user_id 的文档,但没有 user_id,我必须删除这些文档。请帮忙!

4

1 回答 1

1

我假设您对要删除其文档的用户有一些标准,而不是外键?只需使用semi-join,您也可以在DELETE语句中使用它。

假设您的搜索条件类似于username

在 SQL 中

DELETE FROM docs
WHERE docs.user_id IN (
  SELECT user_id
  FROM user
  WHERE username = ?
)

在 Java 中

// Assuming the usual static import:
import static org.jooq.impl.DSL.*;

// Then write:
ctx.deleteFrom(DOCS)
   .where(DOCS.USER_ID.in(
       select(USER.USER_ID)
       .from(USER)
       .where(USER.USERNAME.eq(username))
   ))
   .execute();
于 2022-03-04T12:42:01.337 回答