sql >> データベース >  >> RDS >> Mysql

別のテーブルmysqlの値に応じてテーブルに値を挿入します

    私があなたの質問を正しく解き明かすならば、この問題は以下の単純化された例を使用して説明することができます:

    テーブルusersには次のレコードがあります :

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

    テーブルphoneには次のレコードがあります 2人のユーザーのみ:

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

    111-222-333などの「デフォルト」の電話でレコードを挿入したい そのテーブルに含まれていないユーザー(ユーザー1、3、および4)の場合、最終的にテーブルは次のようになります。

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

    はいの場合は、次のクエリを使用します:

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

    デモ: http://sqlfiddle.com/#!9/94158/2




    1. sqliteから検索されたデータを返します

    2. C#でMysqlDBに接続する-データセットでいくつか必要

    3. where句の有無にかかわらず複数のテーブルを持つmysqldump

    4. 別のアプリケーションから1つのアプリケーションのデータベースにアクセスする