sql >> Base de Datos >  >> RDS >> Mysql

Insertar valores en la tabla dependiendo de los valores de otra tabla mysql

Si entendí correctamente su pregunta, este problema se puede explicar usando el siguiente ejemplo simplificado:

Existen los siguientes registros en la tabla users :

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

y hay los siguientes registros en la tabla phone solo para dos usuarios:

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

y desea insertar registros con algún teléfono "predeterminado", digamos 111-222-333 para los usuarios que no están en esa tabla (usuarios 1, 3 y 4), y al final la tabla debería verse así:

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

En caso afirmativo, utilice la siguiente consulta:

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

Demostración:http://sqlfiddle.com/#!9/94158/2