下面的查詢返回2303行:UPDATE影響比同等更少的行選擇
SELECT a.*
FROM cur_analises a
INNER JOIN cur_materias_subsidiarias ms
ON ms.materia_id = a.materia_id
AND ms.subsidiaria_id IN(SELECT id FROM cur_subsidiarias WHERE cliente_id = 134)
INNER JOIN cur_materias m
ON m.id = a.materia_id
INNER JOIN cur_clientes c
ON c.carga_id = ms.subsidiaria_id
WHERE a.cliente_id = 134;
我需要從表cur_analises
與cur_clientes.id
值更新所有2303行的cliente_id
領域。然而,當我試圖把這一SELECT
查詢到以下UPDATE
,它不僅影響2297行,根據MySQL工作臺:
UPDATE cur_analises a
INNER JOIN cur_materias_subsidiarias ms
ON ms.materia_id = a.materia_id
AND ms.subsidiaria_id IN(SELECT id FROM cur_subsidiarias WHERE cliente_id = 134)
INNER JOIN cur_materias m
ON m.id = a.materia_id
INNER JOIN cur_clientes c
ON c.carga_id = ms.subsidiaria_id
SET a.cliente_id = c.id
WHERE a.cliente_id = 134;
我不知道爲什麼它缺少6行。我究竟做錯了什麼?
這些行中的六行是否已經具有要設置的值? –
不,它們是在上一個查詢中由'auto_increment'生成的新ID。 – bfavaretto