2015-07-10 4 views
1

я пишу следующий запрос, но он не работает он показывает запрос прервалСкопируйте один столбец в другой в другом таблице MySQL

update media m ,cities c 
    set m.latitude=c.latitude 
    where m.cities_id=c.id; 

кто может знать, что это ошибка в приведенном выше запросе ???

+0

Это также зависит от того, чего вы пытаетесь достичь, если 'media.latitude' вообще не заполняется, вы можете« вставлять в ... select »тип вещи. – favoretti

ответ

1

Существует альтернативный синтаксис, который допускает объединение в обновлении, но это стандартный способ SQL. Убедитесь, что внутренний запрос возвращает только одно значение.

update media 
set latitude = (
    select c.latitude from cities c where c.id = media.cities_id 
) 
+0

он также не работает, он показывает ту же ошибку –

1

Попробуйте этот запрос:

UPDATE media m LEFT JOIN cities c on c.cities_id = m.id SET m.latitude=c.latitude; 

Примечание: Убедитесь, что оба cities_id, идентификатор имеют тот же тип данных.

+0

Цель запроса - установить широту не города ... – Maverick

+0

Thnx для комментария изменил его – HashSu

0

ОБНОВЛЕНИЕ СМИ m INNER JOIN города c ON m.cities_id = c.id SET m.latitude = c.latitude;