Mysql
 sql >> база данни >  >> RDS >> Mysql

Редове за актуализиране на MySQL с двойно ляво съединение, ограничаване на първото съвпадение

Направихте задачата доста лесна с вашия sqlfiddle, както и с опита си да разрешите проблема с Select query.

Предполагам, че работи по начина, по който искате, и всичко, което трябва да направя, е да добавя още едно ляво съединение с таблица с категории (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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разделяне на масива на по-малки масиви въз основа на стойността на ключа?

  2. Оптимизация на заявка:max() в подзаявка

  3. „Помощ“ Колоната с първичен ключ не може да бъде генерирана от сървъра

  4. mysql, utf-8 колона:как да изберете само регистри и малки букви?

  5. MySQL - Тригер за актуализиране на същата таблица след вмъкване