0

私は 2 つの mysql テーブルを持っています。1 つは車の詳細を含み、もう 1 つは車のすべての可能なモデルを含んでいます。

車:
  car_id
  モデル
  【詳細】

モデル:
  モデル ID
  モデル名

さて、私の問題は、「cars」テーブルに保存されているモデルの詳細が、必要なmodel_idではなく、model_nameであることです

cars.modelを更新できるようにするには、ある種の再帰的なUPDATEテーブルが必要だと思いますが、私の脳は機能を停止し、その方法を理解できません。これがどのように行われるかについてのヒントはありますか?

助けてくれる人に感謝します!

4

1 に答える 1

1
mysql> テーブル車を作成 (car_id int auto_increment 主キー、モデル
varchar(50), model_id int);
クエリ OK、影響を受ける行は 0 (0.01 秒)

mysql> テーブル モデルを作成します (model_id int auto_increment 主キー、名前
varchar(50));
クエリ OK、影響を受ける行は 0 (0.01 秒)

mysql> モデル (名前) 値 ('Taurus'), ('Ka'), ('Mustang') に挿入します。
クエリ OK、影響を受ける 3 行 (0.00 秒)
レコード: 3 重複: 0 警告: 0

mysql> 車 (モデル) 値 ('Ka')、('Mustang')、('Taurus') に挿入します。
('F150');
クエリ OK、影響を受ける 4 行 (0.00 秒)
レコード: 4 重複: 0 警告: 0

mysql> select * from cars;
+--------+---------+----------+
| | car_id | モデル | モデル ID |
+--------+---------+----------+
| | 1 | カ | カ | ヌル |
| | 2 | ムスタング | ムスタング ヌル |
| | 3 | おうし座 | おうし座 ヌル |
| | 4 | F150 | ヌル |
+--------+---------+----------+
4 行セット (0.00 秒)

mysql> モデルから * を選択します。
+---------+---------+
| | モデル ID | 名前 |
+---------+---------+
| | 1 | おうし座 | おうし座
| | 2 | カ | カ |
| | 3 | ムスタング | ムスタング
+---------+---------+
3 行セット (0.00 秒)

mysql> 車を更新し、モデルを設定します cars.model_id = models.model_id
ここで、models.name = cars.model;
クエリ OK、影響を受ける 3 行 (0.06 秒)
一致した行: 3 変更された: 3 警告: 0

mysql> select * from cars;
+--------+---------+----------+
| | car_id | モデル | モデル ID |
+--------+---------+----------+
| | 1 | カ | カ | 2 |
| | 2 | ムスタング | ムスタング 3 |
| | 3 | おうし座 | おうし座 1 |
| | 4 | F150 | ヌル |
+--------+---------+----------+
4行セット (0.03秒)

于 2008-11-11T10:36:10.950 に答える