当前位置: 首页 > 知识库问答 >
问题:

使用内部联接删除

应子真
2023-03-14

所以我有一个相关的子查询,我读到这不是最有效的方法。因此,我想将此查询转换为内部联接查询。

DELETE FROM tableA
WHERE EXISTS (
           SELECT fieldA
           FROM tableB
           WHERE tableB.fieldA= tableA.fieldA)

我试过这样的方法:

DELETE a 
FROM TableA a
INNER JOIN TableB b
ON a.fieldA = b.fieldA

在对数据库“db”执行SQL查询时导致错误:靠近“a”:语法错误

我在这里的所有搜索结果都产生了大致相同的查询(与我尝试的类似)

共有1个答案

督阿苏
2023-03-14

您发布的内容适用于SQL Server;对于,MySQL应该在下面完成这项工作

DELETE tableA
FROM tableA
INNER JOIN tableB ON tableB.fieldA = tableA.fieldA;
 类似资料:
  • 问题内容: 有2个表,和,并且我需要从中删除数据。 是唯一“连接”表的东西。我已经尝试过此脚本,但是它不起作用。 我已经试过了: 问题答案: 在第一行中添加到。 尝试:

  • 我想在SQL Server2008中使用进行删除。 但我得到了这个错误: 消息156,级别15,状态1,第15行 关键字“inner”附近的语法不正确。 我的代码:

  • 我试图在一列内连接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的事情。 我想使用内部联接执行HQL查询并检索角色对象/结果。 这是到目前为止我的hql 一场createQuery(“从角色作为角色内部加入参与作为角色上的参与。id=invention.roleid,其中invention.id=X”)。list(); 我看到在HQL上不可用。如何明确地告诉Hibernate仅加入此列。

  • 问题内容: 我试图在一个列上内部联接两个表。从数据库方面来看,没有映射,因为这是我不想讨论的。 我想使用INNER JOIN执行HQL查询并检索ROLE对象/结果。 到目前为止,这是我的总部 session.createQuery(“ ROLE作为角色,INNER JOIN INVOLVEMENT作为参与角色,id。X =参与.roleid WHERE参与.id = X”)。list(); 我看到

  • 问题内容: 我有三张桌子。 地点 学校 school_locations 此处的表位置包含应用程序的所有位置。学校的位置由ID调用。 当我使用查询 它显示“ coun”类型的名称 但我想显示location.name,其中只有school_locations的类型为“ coun” 我尝试了以下查询,但似乎都没有用 和 是否可以在查询中使用多个内部联接,还是有另一种方法? 问题答案: 该子句必须在语

  • 问题内容: 我有两个要与之进行内部联接的表。 一个是主键为的表。 另一个表是外键在哪里。也有一个列,其中where是表的外键。 我正在尝试汇总一个ActiveRecord查询,在这里我可以选择N天前或之前创建的所有用户,并且其中任何一个都没有等于特定ID的用户。我试图做这样的事情: 此查询字段超过30,000个结果,这是不正确的,因为Users表仅具有12,000行。 我到底在做什么错? 问题答案