2009-09-05 6 views
15

j'ai vu ceMySQL Insérer et se joint à

MySQL, rejoint le travail pour INSERT, UPDATE et DELETE. Il est possible de modifier les données dans plus de une table lors de la jonction de tables dans une instruction UPDATE ou DELETE .

dans une réponse à une question du guide de certification mysql. est-ce vrai? inserts avec des jointures? un exemple?

Répondre

26

Vous pouvez INSERT ... SELECT avec mysql, ce qui est probablement ce qu'ils veulent dire. Par exemple:

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

Tenir compte à l'aide REPLACE au lieu de INSERT, il met à jour les doublons ou les inserts valeurs manquantes – DanFromGermany

+1

@Marius, Qu'en est-il insérer dans la table jointe (les deux tables) comme nous pouvons avec 'delete'? http://stackoverflow.com/a/3860308/632951 – Pacerier

12

Pour compléter l'ensemble, voici un pour SUPPR. C'est une méthode courante pour supprimer des lignes avec leurs dépendances sans déclencheurs.

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