我的MySQL服务器上有两个表(5.5.25)。一个表格保存产品信息,另一个表格保存这些产品的库存水平信息。到目前为止我还没有定义任何外键:
mysql> DESCRIBE product;
+---------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| product_no | varchar(45) | YES | | NULL | |
| product_group | int(11) | NO | | NULL | |
+---------------------+--------------+------+-----+---------+----------------+
mysql> DESCRIBE product_stock;
+--------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| product_id | int(11) | NO | | NULL | |
| amnt_stocked | int(11) | NO | | NULL | |
+--------------+---------+------+-----+---------+----------------+
现在我的工作是删除任何product_stock条目,这些条目是product_group 2的成员。我的语法是:
DELETE PS FROM product_stock PS LEFT JOIN product P ON PS.product_id = P.id
WHERE P.product_group = 2;
问题是:MySQL不会删除任何行。由于可能出现的性能问题,我不想使用子查询。我发现很多左连接的例子与删除语句相结合,只是不知道这里出了什么问题....
答案 0 :(得分:2)
这是你遇到的同样的问题和答案。转到此链接,了解如何完成link for the answer
答案 1 :(得分:0)
DELETE product_stock
FROM product_stock
INNER JOIN product ON product_stock.product_id = product.id
WHERE product.product_group = 2;