Я пытаюсь обновить столбец в таблице со следующим запросом. В этом случае обновляется 32000 строк.Почему результаты разные в этих двух sql
Update Table72D012 t2 set DEFINING_ARGUMENT_ID =
(
SELECT t3.ID
FROM Table70t3 t3,
Table70t1 t1,
Table70t0 t0,
Table4 t4
WHERE t2.Model_id = t4.ID
AND t3.ID = t1.PARAM_VALUE_BPVA_ID
AND t3.VALUE_BPAR_ID = t0.ID
AND t0.KEY='SPECIAL_KEY'
AND t1.LANGUAGE='en'
AND t4.Model = t1.name
);
Мне нужен результат проверки, и я использовал следующий запрос, чтобы получить количество соответствующих идентификаторов. Я получил результат 26500 .. Почему результат (количество обновлений и количество результатов выбора) отличается друг от друга?
Как я могу исправить запрос UPDATE?
ТОЛЬКО ВЫБРАТЬ
SELECT t3.ID
FROM Table70t3 t3,
Table70t1 t1,
Table70t0 t0,
Table72D012 t2,
Table4 t4
WHERE t2.Model_id = t4.ID
AND t3.ID = t1.PARAM_VALUE_BPVA_ID
AND t3.VALUE_BPAR_ID = t0.ID
AND t0.KEY='SPECIAL_KEY'
AND t1.LANGUAGE='en'
AND t4.Model = t1.name
У вас действительно есть 't0.key = 'ORDN'' в одном запросе и' t0.key =' SPECIAL_KEY'' в другом? –
Я что-то упустил? В вашем обновлении вы используете 't0.KEY = 'ORDN'', но когда вы выберете, вы используете' t0.KEY =' SPECIAL_KEY''? – LittleBobbyTables
Это была типичная ошибка обоих ключей SPECIAL_KEY – Kayser