sql >> Database teknologi >  >> RDS >> Mysql

MySQL Update rækker med dobbelt venstre join, hvilket begrænser første match

Du gjorde opgaven ret nem med din sqlfiddle såvel som dit forsøg på at løse problemet med Select-forespørgsel.

Det virker, som du vil, og alt, hvad jeg skal gøre, er at tilføje en mere venstre join med kategoritabel (IDK hvorfor du ikke var i stand til at deltage i kategori, da den fungerer korrekt).

Så. Jeg har redigeret din valgforespørgsel som følger:

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;

Du får de ønskede resultater med denne forespørgsel.

Nu for at opdatere Products tabel med resultatet af denne forespørgsel, kan du gøre følgende:

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 her for en arbejdsdemo

Håber det hjælper!




  1. Oracle SQL Insert Trigger to Hash Password virker ikke (Problem med CHAR)

  2. Postgresql libpq med Qt i windows

  3. Spring, Hibernate, Blob doven loading

  4. Søg efter hele ord match i MySQL