【问题标题】:SQL - DELETE some raws from Table1 where some conditions are met on Table2SQL - 从 Table1 中删除一些原始数据,其中在 Table2 上满足某些条件
【发布时间】:2019-11-27 14:28:56
【问题描述】:

我有一个 MySQL 数据库,其中有 2 个表:Table1、Table2。

Table1 有这样的结构:

ID, name, description

Table2 有这样的结构:

TableID, Metadata, Metavalue

现在,我想从表 1 和表 2 中删除所有行 WHERE Metadata = "Price" AND Metavalue

这是我正在尝试的,但它不起作用:

DELETE Table1,  Table2
FROM Table2
INNER JOIN Table2 ON Table2.TableID = Table1.ID
WHERE Table2.metadata="Price" AND Table2.Metavalue < 200000

错误:

Table2: Not unique Table/Alias 

我哪里错了?

注意:这些表非常大,所以我使用 JOIN,因为据我所知,它优化了资源。

【问题讨论】:

  • 仔细阅读您发布的查询。
  • 您使用的是 MySQL 还是 MS SQL Server?
  • @EzLo 我认为 OP 正在使用 MySQL
  • 没关系,我的评论是针对 SQL Server 的!
  • Table2 中的 TableID 是 Table1.ID 的外键吗?

标签: mysql sql


【解决方案1】:

以下是可信查询的示例:

DELETE Table1
     , Table2
  FROM Table1
  JOIN Table2 
    ON Table2.TableID = Table1.ID
 WHERE Table2.metadata = "Price" 
   AND Table2.Metavalue < 200000

请注意,使用外键约束可能会更好地处理这种事情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 2021-10-17
    • 2018-01-09
    • 1970-01-01
    • 2017-03-30
    • 2020-11-12
    相关资源
    最近更新 更多