2015-07-10 53 views
1

我写下面的查询,但它不工作就说明查询中断在不同的表MySQL的一列复制到另一个

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

任何人都可以知道什么是错在上面的查询???

+0

这也取决于你想达到什么目标,如果'media.latitude'根本没有被填充,你可以做'insert into ... 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,ID是相同的数据类型。

+0

查询的目的是设置纬度不是城市... – Maverick

+0

thnx的评论改变它 – HashSu

0

UPDATE media m INNER JOIN cities c ON m.cities_id = c.id SET m.latitude = c.latitude;

相关问题