Mysql
 sql >> Database >  >> RDS >> Mysql

Inserisci i valori nella tabella in base ai valori di un'altra tabella mysql

Se risolvo correttamente la tua domanda, questo problema può essere spiegato utilizzando l'esempio semplificato di seguito:

Ci sono i seguenti record nella tabella users :

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

e ci sono i seguenti record nella tabella phone solo per due utenti:

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

e vuoi inserire record con un telefono "predefinito", dì 111-222-333 per gli utenti che non sono in quella tabella (utenti 1, 3 e 4), e alla fine la tabella dovrebbe apparire così:

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

Se sì, utilizza la seguente query:

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

Demo:http://sqlfiddle.com/#!9/94158/2