sql >> Database >  >> RDS >> Mysql

Waarden in tabel invoegen afhankelijk van waarden van een andere tabel mysql

Als ik uw vraag correct ontcijfer, kan dit probleem worden uitgelegd aan de hand van het onderstaande vereenvoudigde voorbeeld:

Er zijn de volgende records in tabel users :

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

en er zijn de volgende records in tabel phone alleen voor twee gebruikers:

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

en je wilt records invoegen met een "standaard" telefoon, zeg 111-222-333 voor gebruikers die niet in die tabel staan ​​(gebruikers 1, 3 en 4), en uiteindelijk zou de tabel er als volgt uit moeten zien:

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

Zo ja, gebruik dan de volgende vraag:

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




  1. CSV opslaan met UTF-16BE-codering in PHP

  2. Excel-gegevensblad laden in Oracle-database

  3. MySQL2 Ruby gem zal 10.6 niet installeren

  4. mysql minuten tot uren en minuten