Mysql backup update

I have two mysql tables, one containing the parts on cars and one containing all the possible car models, as such:

cars:
  car_id
  model
  [more details]

models:
  model_id
  model_name

Now my problem is that the model details stored in the "cars" table are model_name and not model_id, which is what I want

I guess I need some kind of recursive UPDATE table to be able to update cars.model, but my brain stops working and can't figure out how to do this. Does anyone have any hints on how this will be done?

Thanks to everyone who can help!

0


source to share


1 answer


mysql> create table cars (car_id int auto_increment primary key, model 
varchar (50), model_id int);
Query OK, 0 rows affected (0.01 sec)

mysql> create table models (model_id int auto_increment primary key, name 
varchar (50));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into models (name) VALUES ('Taurus'), ('Ka'), ('Mustang');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> insert into cars (model) VALUES ('Ka'), ('Mustang'), ('Taurus'), 
('F150');
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> select * from cars;
+ -------- + --------- + ---------- +
| car_id | model | model_id |
+ -------- + --------- + ---------- +
| 1 | Ka | NULL |
| 2 | Mustang | NULL |
| 3 | Taurus | NULL |
| 4 | F150 | NULL |
+ -------- + --------- + ---------- +
4 rows in set (0.00 sec)

mysql> select * from models;
+ ---------- + --------- +
| model_id | name |
+ ---------- + --------- +
| 1 | Taurus |
| 2 | Ka |
| 3 | Mustang |
+ ---------- + --------- +
3 rows in set (0.00 sec)

mysql> update cars, models set cars.model_id = models.model_id 
where models.name = cars.model;
Query OK, 3 rows affected (0.06 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> select * from cars;
+ -------- + --------- + ---------- +
| car_id | model | model_id |
+ -------- + --------- + ---------- +
| 1 | Ka | 2 |
| 2 | Mustang | 3 |
| 3 | Taurus | 1 |
| 4 | F150 | NULL |
+ -------- + --------- + ---------- +
4 rows in set (0.03 sec)



+1


source







All Articles