Código:
DELETE prod_cat.*,
prod_color.*,
prod_oz.*,
prod_size.*
FROM productos LEFT JOIN prod_cat Using (id_producto)
LEFT JOIN prod_color Using (id_producto)
LEFT JOIN prod_oz Using (id_producto)
LEFT JOIN prod_size USING (id_producto)
WHERE productos.id_producto = $prod";
Código:
DELETE FROM prod_cat WHERE prod_cat.id_producto = $prod";
etc.
Si por separado o definiendo en la relacion la eliminacion en cascada, si puedes eliminar de productos.
Código:
DELETE FROM productos WHERE productos.id_producto = $prod";
Si tienes definidas las FK y la eliminación en cascada solo tines que eliminar el producto de la tabla principal (productos) y se eliminara de las demás.
Cita: El problema es que hay lookup tables en los que la columna id_producto no tiene dicho valor, por eso uso el LEFT JOIN en lugar de un INNER JOIN.
Si alguna de las tablas no tiene el campo id_producto dificilmente se te van a relacionar, sea con LEFT JOIN o INNER JOIN. Si lo que no tienen es el valor no te importa puesto que luego no tendrás que borrar nada en ellas.
Quim