用乙個表去更新另乙個表

2022-09-09 10:03:12 字數 1682 閱讀 9898

朋友今天問我乙個問題:有兩張資料表 bureau_area_code 和 county_code,我想用town_code擷取前6位去和county_code擷取前6位查詢,查到對應的county_name該咋寫?

下面先是兩張表結構:

1

create

table

`bureau_area_code` (

2 `id` int(10) unsigned not

null

auto_increment,

3 `town_code` text

,4 `town_name` text

,5 `province_code` varchar(255) default

null

,6 `province_name` varchar(255) default

null

,7 `city_code` varchar(255) default

null

,8 `city_name` varchar(255) default

null

,9 `county_code` varchar(255) default

null

,10 `county_name` varchar(255) default

null,11

primary

key(`id`)

12 )

1

create

table

`county_code` (

2 `id` int(10) unsigned not

null

auto_increment,

3 `county_code` text

,4 `county_name` text,5

primary

key(`id`)

6 );

bureau_area_code 的資料是這樣的:

county_code 的資料是這樣的:

下面上**:

1

update

bureau_area_code, county_code

2set bureau_area_code.county_name =

county_code.county_name,

3 bureau_area_code.county_code =

county_code.county_code

4where

left(bureau_area_code.town_code, 6) =

left(county_code.county_code, 6);

這裡用到了 mysql 的內部函式 left,可以直接擷取字串。所以 where 的時候就直接使用 left 函式比較擷取完的前6位就行。

要注意:資料來源的那張表 county_code 也要在 update 中註冊一下,不然會有 unknown column 的錯誤。

mysql用乙個表更新另乙個表的方法

solution 1 修改1列 update student s,city c set s.ci程式設計客棧ty nam程式設計客棧e c.name where s.city code c.code solution 2 修改多個列 update a,b程式設計客棧 set a.title b.ti...

Mysql 用乙個表的字段更新另乙個表的字段

將users表中的使用者暱稱 nick欄位 的值用usermaptable中的使用者名稱資訊 nick欄位 代替,如果usermaptable表中找不到users表中的使用者,則這一行不做修改,只修改usermaptable和users同時存在的使用者資訊。下面提供兩種寫法,親測可用 update ...

Oracle根據乙個表更新另乙個表的幾種寫法

1.declare cursor t1 is select from tablename begin for rec in t1 loop update tablename t set t.detail rec.jieshao where t.objectid rec.objid end loop ...