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

2番目のテーブルエントリからmysqlテーブルエントリ値を動的に参照することは可能ですか?

    これを行うには2.5の方法があります(基本的に2つですが、3つあるように感じます):

    最も簡単なものから最も難しいものへ...

    オプション1:

    tableBの値を反映するためにtableAが必要な場合は、tableAに値を格納せず、tableBの値を使用してください。いずれかの結合を使用します:

    select a.*, b.col1
    from tableA a
    join tableB b on <some join condition>
    

    または副選択

    select *, (select col1 from tableB where <some condition>) col1
    from tableA
    

    オプション2:

    オプション1に満足している場合は、それをテーブルのように動作するビューに変換します(結合であるビューの更新に関する制限を除く):

    create view myview as 
    select ... (one of the above selects)
    

    オプション3:

    tableBの値が変更されたときに起動するデータベーストリガーを作成し、その値をtableAの適切な行/列にコピーします

    create trigger tableB_update
    after update on tableB
    for each row
    update tableA set
    tablea_col = new.col1
    where id = new.tableA_id;
    

    newに注意してください およびold 更新されるテーブルの値を参照できるように、新しい行と古い行に付けられた特別な名前です。

    ニーズに最適なオプションを選択してください。



    1. 実行プランオペレーターのタイミングを理解する

    2. nodejs mysqlエラー:接続が失われましたサーバーが接続を閉じました

    3. Mysql読み取りロックSELECTFORUPDATE

    4. ActiveRecordですべてのデータベースを一覧表示する方法