2009-09-05 18 views
15

vi esteMySQL Insertar y se une a

En MySQL, se une el trabajo para INSERT, UPDATE y DELETE. Es posible cambiar los datos en más de una tabla al unir tablas en una declaración UPDATE o DELETE.

en una respuesta a una pregunta de la guía de certificación de mysql. ¿es verdad? insertos con uniones? un ejemplo de eso?

Respuesta

26

Puede INSERTAR ... SELECCIONAR con mysql, que es probablemente lo que significan. Por ejemplo:

INSERT INTO tableNew (col1, col2) 
    SELECT tbl1.col1, tbl2.col2 
    FROM tbl1 JOIN tbl2 
+2

considerar el uso de REPLACE en lugar de INSERT, se actualiza duplicados o inserciones de los valores perdidos – DanFromGermany

+1

@Marius, ¿Qué pasa con la inserción en la tabla combinada (las dos tablas) como podamos con 'delete'? http://stackoverflow.com/a/3860308/632951 – Pacerier

12

Para completar el conjunto, aquí está uno para ELIMINAR. Este es un método común para eliminar filas junto con sus dependencias sin desencadenantes.

DELETE users, comments 
FROM users JOIN comments ON comments.author=users.id 
WHERE users.isspammer=1