#sqlite #join #sql-update
#sqlite #Присоединиться #sql-обновление
Вопрос:
Есть кое-что, чего я не понимаю, чтобы посмотреть, может ли кто-нибудь мне помочь.
Как возможно, что в заявлении, подобном тому, которое я указываю, обновляются все данные поля, даже имеющие внутреннее предложение?
update temp_sq05 set tipoproynew =( SELECT temp_sq06.TP FROM temp_sq05 ts INNER JOIN temp_sq06 ON temp_sq05.te_cod = temp_sq06.tecodmg and temp_sq05.tipoproynew IS NULL )
Комментарии:
1. Это возможно, потому что в вашем
UPDATE
заявлении нетWHERE
пункта, ограничивающего область обновления.
Ответ №1:
Подзапрос, который вы используете для обновления столбца tipoproynew
, должен быть соотнесен с таблицей temp_sq05
, и это невозможно сделать с помощью соединения.
Попробуйте это:
UPDATE temp_sq05 AS t5 SET tipoproynew = ( SELECT t6.TP FROM temp_sq06 AS t6 WHERE t6.tecodmg = t5.te_cod ) WHERE t5.tipoproynew IS NULL;
Если ваша версия SQLite 3.33.0 , вы можете использовать UPDATE...FROM...
синтаксис:
UPDATE temp_sq05 AS t5 SET tipoproynew = t6.TP FROM temp_sq06 AS t6 WHERE t5.te_cod = t6.tecodmg AND t5.tipoproynew IS NULL;
Комментарии:
1. ооо; Большое вам спасибо за то, что вы спасли мне жизнь, я не знал, в чем моя вина или как решить проблему; я нигде ее не видел. Мне еще многому нужно научиться у учителей