Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserir valores na tabela dependendo dos valores de outra tabela mysql


Se eu entender sua pergunta corretamente, esse problema pode ser explicado usando o exemplo simplificado abaixo:

Existem os seguintes registros na tabela users :
| iduser |
|--------|
|      1 |
|      2 |
|      3 |
|      4 |
|      5 | 

e existem os seguintes registros na tabela phone apenas para dois usuários:
| user |       phone |
|------|-------------|
|    2 | 123-343-444 |
|    5 | 222-444-363 |

e você deseja inserir registros com algum telefone "padrão", digamos 111-222-333 para usuários que não estão nessa tabela (usuários 1, 3 e 4), e no final a tabela deve ficar assim:
| user |       phone |
|------|-------------|
|    1 | 111-222-333 |
|    2 | 123-343-444 |
|    3 | 111-222-333 |
|    4 | 111-222-333 |
|    5 | 222-444-363 |

Se sim, use a seguinte consulta:
INSERT INTO phone( user, phone )
SELECT iduser, '111-222-333'
FROM user
WHERE iduser NOT IN ( SELECT user FROM phone );

Demonstração:http://sqlfiddle.com/#!9/94158/2