Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Update Inner Join таблици заявка

Опитайте това:

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обяснение на MySQL High Availability Framework – Част I:Въведение

  2. Как да се свържете с MySQL с помощта на PHP

  3. Как мога да активирам бавния регистър на заявките на MySQL, без да рестартирам MySQL?

  4. Актуализирайте SQL режима в MySQL

  5. Как да промените стойността на автоматично увеличение на MySQL / MariaDB база данни