Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Werte in Tabelle einfügen, abhängig von Werten einer anderen Tabelle mysql

Wenn ich Ihre Frage richtig verstehe, kann dieses Problem anhand des folgenden vereinfachten Beispiels erklärt werden:

In der Tabelle users befinden sich die folgenden Einträge :

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

und es gibt die folgenden Einträge in der Tabelle phone nur für zwei Benutzer:

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

und Sie möchten Datensätze mit einem "Standard"-Telefon einfügen, sagen Sie 111-222-333 für Benutzer, die nicht in dieser Tabelle sind (Benutzer 1, 3 und 4), und am Ende sollte die Tabelle so aussehen:

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

Wenn ja, verwenden Sie die folgende Abfrage:

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