2013-12-17 5 views
1

Я некоторое время борется с запросом на обновление MySQL, но не могу понять решение.MySql конвертировать запрос выбора для обновления

У меня есть

Table_Items: 
- id 
- desc 
- maintenance_times 

и

Table_Maintenances: 
- id 
- Item_id 
- maintenance_desc 

Они связаны друг с другом, как

Table_Items.id=Table_Maintenances.Item_id 

Теперь я хочу, чтобы подсчитать количество содержаний из таблицы Table_Maintenances для каждого элемента и обновить колонку maintenace_time в Table_Items ,

У меня есть запрос на выборку, который работает, но не могу понять, как обновлять каждую строку (maintenance_times) в Table_items:

SELECT COUNT(b.Item_id) 
FROM `Table_Items` AS a 
LEFT JOIN Table_maintenances as B ON a.id=b.Item_id 
GROUP BY b.Item_id 
+1

HTTP : //stackoverflow.com/questions/4268416/sql-update-with-sub-query-that-references-the-same-table-in-mysql –

ответ

2

Фигурные это, наконец, благодаря вашему примеру:

UPDATE 
    Table_Items m, 
    (
    SELECT a.id, COUNT(b.Item_id) cnt 
    FROM `Table_Items` AS a 
    LEFT JOIN Table_Maintenances as B on a.id=b.Item_id 
    GROUP BY b.Item_id 
) q 
SET m.maintenance_times = q.cnt 
WHERE m.id = q.id 
Смежные вопросы