删除数据库表中的几行

发布于 2025-01-11 19:28:19 字数 107 浏览 4 评论 0原文

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

I am using code-generator. I have two tables. In one table I have user_id an several docs of this user_id. In second table a have docs of this user_id, but without user_id and I have to delete these docs.
Please help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清泪尽 2025-01-18 19:28:19

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

假设您的搜索条件类似于用户名

In SQL

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

In 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();

I'm assuming you have some criteria about the user whose documents you want to delete, just not the foreign key? Just use a semi-join, which you can use in DELETE statements as well.

Assuming your search criteria is something like the username:

In SQL

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

In 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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文