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

Oracle SQL ディープ アップデート

    MERGE は道のりです。

    Bag:items=Item1, Item2 があります

    BagInDB があります:bag_id =1items=Item1,Item3

    したがって、Item1 を更新し、Item2 を追加し、Item3 を削除する必要があります

    最初のステップ (参加):

    select * from bag full outer join (select * from bagInDB where bag_id = 1)
      

    それはあなたに与えます

    bag_itemName bagInDb_itemName
    ------------ ----------------
    Item1        Item1
    Item2        null
    null         Item3
      

    2 番目のステップ (マージ)

    merge into baginDB b
    using(query above) q on b.bag_id = 1 and b.itemName = q.bagInDb_itemName
    when matched then
    delete where q.bag_itemName is null
    <rest of the conditions>
      


    1. MySQLの主キーの重複エントリ

    2. mysqlコマンドラインでレコードを垂直に表示するにはどうすればよいですか?

    3. MySQLでデータを生成する方法は?

    4. mysqlで検索できるように、アポストロフィをどのようにエンコードしますか?