Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Update Inner Join tabel query

Coba ini:

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

Pembaruan:

Karena Anda mengatakan kueri menghasilkan kesalahan sintaks, saya membuat beberapa tabel yang dapat saya uji dan mengonfirmasi bahwa tidak ada kesalahan sintaks dalam kueri saya:

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

Lihat? Tidak ada kesalahan sintaks. Saya menguji terhadap 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. FIX:MySQL – Perintah SELECT Ditolak Untuk Pengguna

  2. MySQL find_in_set dengan beberapa string pencarian

  3. Cara Memindahkan Semua Database MySQL Dari Server Lama ke Server Baru

  4. Cara menginstal dan mengkonfigurasi MySQL di Ubuntu

  5. Panduan Merancang Database Untuk Manajemen Blog Di MySQL