Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérer des valeurs dans la table en fonction des valeurs d'une autre table mysql

Si j'ai bien compris votre question, ce problème peut être expliqué à l'aide de l'exemple simplifié ci-dessous :

Il y a les enregistrements suivants dans la table users :

| iduser |
|--------|
|      1 |
|      2 |
|      3 |
|      4 |
|      5 | 

et il y a les enregistrements suivants dans la table phone uniquement pour deux utilisateurs :

| user |       phone |
|------|-------------|
|    2 | 123-343-444 |
|    5 | 222-444-363 |

et vous souhaitez insérer des enregistrements avec un téléphone "par défaut", dites 111-222-333 pour les utilisateurs qui ne sont pas dans ce tableau (utilisateurs 1, 3 et 4), et à la fin le tableau devrait ressembler à ceci :

| user |       phone |
|------|-------------|
|    1 | 111-222-333 |
|    2 | 123-343-444 |
|    3 | 111-222-333 |
|    4 | 111-222-333 |
|    5 | 222-444-363 |

Si oui, utilisez la requête suivante :

INSERT INTO phone( user, phone )
SELECT iduser, '111-222-333'
FROM user
WHERE iduser NOT IN ( SELECT user FROM phone );

Démo :http://sqlfiddle.com/#!9/94158/2