sql >> Database >  >> RDS >> Mysql

MySQL Update rijen met dubbele linker join, beperking van eerste match

Je hebt de taak vrij eenvoudig gemaakt met je sqlfiddle en je poging om het probleem op te lossen met Select query.

Het werkt zoals je wilt, denk ik, en het enige wat ik hoef te doen is nog een linker join toevoegen met de categorietabel (IDK waarom je niet lid kon worden van Category omdat het goed werkt).

Dus. Ik heb uw geselecteerde zoekopdracht als volgt bewerkt:

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;

Met deze zoekopdracht krijgt u de gewenste resultaten.

Nu, om Products bij te werken tabel met het resultaat van deze zoekopdracht, kunt u het volgende doen:

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;

Klik hier voor een werkende demo

Ik hoop dat het helpt!




  1. MySql, hoe kan ik indexen exporteren van mijn ontwikkelingsdatabase naar mijn productiedatabase?

  2. hoe tel je horizontale waarden in een database?

  3. MySQL-prestaties:MySQL/MariaDB-indexen

  4. Webhost voor Java voorstellen in Windows-omgeving