इसे आजमाएं:
UPDATE business AS b
INNER JOIN business_geocode AS g ON b.business_id = g.business_id
SET b.mapx = g.latitude,
b.mapy = g.longitude
WHERE (b.mapx = '' or b.mapx = 0) and
g.latitude > 0
अपडेट करें:
चूंकि आपने कहा था कि क्वेरी से सिंटैक्स त्रुटि उत्पन्न हुई है, इसलिए मैंने कुछ तालिकाएँ बनाईं जिनका मैं परीक्षण कर सकता था और पुष्टि की कि मेरी क्वेरी में कोई सिंटैक्स त्रुटि नहीं है:
mysql> create table business (business_id int unsigned primary key auto_increment, mapx varchar(255), mapy varchar(255)) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
mysql> create table business_geocode (business_geocode_id int unsigned primary key auto_increment, business_id int unsigned not null, latitude varchar(255) not null, longitude varchar(255) not null, foreign key (business_id) references business(business_id)) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
mysql> UPDATE business AS b
-> INNER JOIN business_geocode AS g ON b.business_id = g.business_id
-> SET b.mapx = g.latitude,
-> b.mapy = g.longitude
-> WHERE (b.mapx = '' or b.mapx = 0) and
-> g.latitude > 0;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
देखो? कोई वाक्यविन्यास त्रुटि नहीं। मैंने MySQL 5.5.8 के खिलाफ परीक्षण किया।