/ / Las filas no se eliminarán cuando se use la combinación izquierda - mysql, join, left-join, delete-row, sql-delete

Las filas no se eliminarán cuando se use la combinación izquierda - mysql, join, left-join, delete-row, sql-delete

Tengo dos tablas en mi servidor MySQL (5.5.25). Una tabla contiene información del producto, la otra tabla mantiene información sobre los niveles de stock de esos productos. No he definido ninguna clave externa hasta ahora:

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    |                |
+--------------+---------+------+-----+---------+----------------+

Ahora mi trabajo es eliminar cualquier entrada de product_stock que sea miembro de product_group 2. Mi sintaxis es:

DELETE PS FROM product_stock PS LEFT JOIN product P ON PS.product_id = P.id
WHERE P.product_group = 2;

El problema es: MySQL no eliminará ninguna fila. Debido a los problemas de rendimiento que pueden surgir, no quiero usar una subconsulta. Encontré muchos ejemplos de combinaciones de izquierda combinadas con declaraciones de eliminación y simplemente no entiendo qué está mal aquí ...

Respuestas

0 para la respuesta № 1
DELETE product_stock
FROM product_stock
INNER JOIN product  ON product_stock.product_id = product.id
WHERE product.product_group = 2;

2 para la respuesta № 2

Aquí es lo mismo que enfrentaste y la respuesta para eso. Vaya a este enlace y vea cómo hacerlo. enlace para la respuesta