UPDATE SELECT всегда возвращает 0

204
26 марта 2017, 04:08
UPDATE
  geo 
SET 
  region_id = (
    SELECT 
      towns.region_id 
    FROM 
      towns  
    WHERE 
      towns.uid=geo.dictionary_id
  ) 
WHERE 
    geo.deleted=0

Пытаюсь таким запросом обновить записи в таблице, но в итоге в столбце region_id всегда получаю 0, хоть в таблице towns и есть записи соответствующие dictionary_id из geo.

Answer 1

UPDATE geo SET geo.region_id = ( SELECT towns.region_id FROM towns
WHERE towns.uid=geo.dictionary_id ) WHERE geo.deleted=0 так попробуй

Answer 2
UPDATE geo 
LEFT JOIN towns on towns.uid=geo.dictionary_id
SET geo.region_id = towns.region_id 
WHERE geo.deleted=0
Answer 3

Есть вот такой вариант:

UPDATE geo, towns
SET geo.region_id = towns.region_id
WHERE geo.deleted = 0 and geo.dictionary_id = towns.uid
READ ALSO
Как вывести список данных

Как вывести список данных

Здравствуйте! Есть две таблицы в базе данных MySql и все нужные php файлы: в одной названия отделов, в другой названия отделов и имена людейВ android...

247
высчитать и записать разницу времени

высчитать и записать разницу времени

В БД хранится дата в формате 2017-03-24 04:05:10

260
Переход на новую активность по нажатию BottomBar

Переход на новую активность по нажатию BottomBar

При нажатии на кнопку в нижнем баре, у меня должен быть переход на новую активность, на которой создается фрагмент, ну и соответсвенно BottomBar...

259
Не запускается cmd.exe из программы на java

Не запускается cmd.exe из программы на java

Код выглядит следующим образом:

216