sql >> Databáze >  >> RDS >> Mysql

Řádky aktualizace MySQL s dvojitým levým spojením, omezující první shodu

Úkol jste si docela usnadnili pomocí svého sqlfiddle a také pokusu o vyřešení problému pomocí Select query.

Myslím, že to funguje tak, jak chcete, a vše, co musím udělat, je přidat další levé spojení s tabulkou kategorií (IDK, proč jste se nemohli připojit ke kategorii, protože to funguje správně).

Tak. Upravil jsem váš vybraný dotaz následovně:

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;

S tímto dotazem získáte požadované výsledky.

Nyní, abychom aktualizovali Products tabulky s výsledkem tohoto dotazu, můžete provést následující:

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;

Kliknutím sem zobrazíte funkční ukázku

Doufám, že to pomůže!




  1. Dynamické SQL pomocí konfiguračních tabulek

  2. java.sql.SQLException:Již uzavřeno

  3. Funguje Dapper na Mono?

  4. Vypočítejte počet po sobě jdoucích denních relací, které má uživatel v MySQL