Como borrar filas de varias tablas en MySQL

DELETE FROM tabla1, tabla2, tabla3
USING tabla1
INNER JOIN tabla2 USING (id)
INNER JOIN tabla3 USING (id)
WHERE tabla1.id = 123

Por ejemplo, digamos que tienes tres tablas: “productos”, “categorias” y “cats_prods”. Cada producto puede asociarse con más de una categoría. La tabla “cats_prods” guarda todas las categorias asociadas con cada producto. Si queremos eliminar un producto, también tenemos que eliminar todas las filas de la tabla que cats_prods que contienen referencias a ese producto. El siguiente query elimina tanto la fila de la tabla productos como las filas correspondientes de la tabla cats_prods.

DELETE FROM cats_prods, productos
USING cats_prods
INNER JOIN productos USING (prod_id)
WHERE cats_prods.prod_id = 25

Compartir este artículo:
  • del.icio.us
  • Google Bookmarks
  • Meneame
  • Technorati
  • BlogMemes Sp
DavidM
Acerca de DavidM
DavidM lleva trabajando en los campos del marketing por Internet y el posicionamiento en buscadores desde el año 2004. Puede ver su biografía aquí.

Un comentario para el post “Como borrar filas de varias tablas en MySQL”

  1. Comentario de nachito79 el 8 de Julio de 2009 a las 19:22

    Muy buen ejemplo, me servio para lo que necesitaba (en realidad en parte). Igualmente al que vaya a usar el ejemplo que pegue una buena leida primero, ya que cuando lo relei, entendi que borraba de las dos tablas al mismo tiempo :D , que era lo queria pero despues me di cuenta que daban bien los numeros!!

Escribe un comentario

Entradas realcionadas

  1. La importancia del error 404 para el posicionamiento web