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

MySQLは、二重左結合で行を更新し、最初の一致を制限します

    sqlfiddleを使用してタスクを非常に簡単にし、Selectクエリを使用して問題を解決しようとしました。

    それは私が推測するように機能し、私がする必要があるのは、カテゴリテーブルとの左結合をもう1つ追加することです(IDKは、正しく機能しているため、カテゴリに結合できなかった理由です)。

    そう。選択したクエリを次のように編集しました:

    select Products.name, Filters.*,Categories.id from Products
    left join Filters
    on Products.name LIKE CONCAT('%',Filters.filter,'%')
    left join Categories
    on Categories.name = Filters.category_name
    GROUP BY Products.name;
    

    このクエリで必要な結果が得られます。

    さて、Productsを更新するために このクエリの結果を含むテーブルでは、次の操作を実行できます。

    update Products
    left join Filters
    on Products.name LIKE CONCAT('%',Filters.filter,'%')
    left join Categories
    on Categories.name = Filters.category_name
    set Products.category_name = Filters.category_name, 
        Products.category_id = Categories.id;
    

    動作デモについてはここをクリック

    お役に立てば幸いです。




    1. executemanyを使用してPythonの辞書のリストをMySQLに挿入するにはどうすればよいですか?

    2. Liquibaseでデータベースを作成する方法

    3. mysql変数でmysqlsourceコマンドを使用するにはどうすればよいですか?

    4. SSISで入力列と出力列を動的にマップする方法は?