SQL:从数据库中删除行的内部或外部联接?
SQL: Inner or Outer Join to delete rows from databases?
我有 2 个 table:
产品:
ID | Price | Status |
订单:
Location | Product ID |
产品 ID 是 ORDER table.
中的外键
我想从 table 中删除与具有特定状态(例如活动)的产品相关的行。
我应该使用什么 JOIN
操作来执行此操作?
请注意,产品 table 中的行数比订单中的行数多得多。
内连接,你想要的,只有内连接
编辑:
如果您打算删除产品 table 中的记录,您应该删除订单 table 中的所有相关记录。所以您的查询将如下所示:
DELETE p
FROM Product p
INNER JOIN Order o
ON o.ProductId=p.Id
Where p.Status='Active'
我有 2 个 table:
产品:
ID | Price | Status |
订单:
Location | Product ID |
产品 ID 是 ORDER table.
中的外键我想从 table 中删除与具有特定状态(例如活动)的产品相关的行。
我应该使用什么 JOIN
操作来执行此操作?
请注意,产品 table 中的行数比订单中的行数多得多。
内连接,你想要的,只有内连接
编辑:
如果您打算删除产品 table 中的记录,您应该删除订单 table 中的所有相关记录。所以您的查询将如下所示:
DELETE p
FROM Product p
INNER JOIN Order o
ON o.ProductId=p.Id
Where p.Status='Active'