问题描述
我有2个表(product和sales_tran),它有2个匹配的列,即product_name。我尝试使用INNER JOIN删除同一表中的匹配记录,但遇到错误 您能帮我在下面的查询中提供建议吗?我想删除记录
DELETE FROM product
INNER JOIN sales_tran ON product.product_name = sales_tran.product_name ;
解决方法
在nysql中 您可以删除所有与sales_tran相关的行
DELETE product FROM product p
INNER JOIN sales_tran st ON p.product_name = st.product_name ;
在sql Server中,它看起来相同
DELETE p
FROM product p
INNER JOIN sales_tran st
ON p.product_name = st.product_name ;
,
对于MySQL,为要删除的表指定别名
DELETE p
FROM product p
INNER JOIN sales_tran s ON p.product_name = s.product_name ;
或者您可以使用子查询
delete
from product
where product_name in (
select product_name
from sales_tran
)