gpt4 book ai didi

MySQL 将值复制到另一个表

转载 作者:行者123 更新时间:2023-11-29 02:15:40 25 4
gpt4 key购买 nike

我需要将 Klient_ID 值从表 (Klient) 复制到表 (Kliendikaart)。命令应通过正确的名字('Eesnimi')选择 ID。我试过这个命令:

UPDATE Kliendikaart
SET Kliendikaart.Klient_ID = Klient.Klient_ID
FROM Kliendikaart
INNER JOIN Klient ON Kliendikaart.Eesnimi = Klient.Eesnimi;

但是

You have an error in your SQL syntax; ... near 'FROM Kliendikaart INNER JOIN Klient ON Kliendikaart.Eesnimi = Klient.Eesnimi' at line 1

表格:

select * from Kliendikaart;
+-----------------+-----------+---------+----------+
| Kliendikaart_ID | Klient_ID | Eesnimi | Perenimi |
+-----------------+-----------+---------+----------+
| 1 | NULL | Priit | Triip |
| 2 | NULL | Tõnu | Lepp |
| 3 | NULL | Tiit | Kask |
| 4 | NULL | Linda | Orb |
| 5 | NULL | Salme | Kepp |
| 6 | NULL | Iiris | Toos |
| 7 | NULL | Kertu | Verb |
| 8 | NULL | Triinu | Kolk |
| 9 | NULL | Tõnis | Viip |
| 10 | NULL | Taavi | Kolk |
+-----------------+-----------+---------+----------+

select * from Klient;
+-----------+---------+----------+
| Klient_ID | Eesnimi | Perenimi |
+-----------+---------+----------+
| 1 | Priit | Triip |
| 2 | Tõnu | Lepp |
| 3 | Tiit | Kask |
| 4 | Linda | Orb |
| 5 | Salme | Kepp |
| 6 | Iiris | Toos |
| 7 | Kertu | Verb |
| 8 | Triinu | Kolk |
| 9 | Tõnis | Viip |
| 10 | Taavi | Kolk |
+-----------+---------+----------+

输出应该是这样的:

select * from Kliendikaart;
+-----------------+-----------+---------+----------+
| Kliendikaart_ID | Klient_ID | Eesnimi | Perenimi |
+-----------------+-----------+---------+----------+
| 1 | 1 | Priit | Triip |
| 2 | 2 | Tõnu | Lepp |
| 3 | 3 | Tiit | Kask |
| 4 | 4 | Linda | Orb |
| 5 | 5 | Salme | Kepp |
| 6 | 6 | Iiris | Toos |
| 7 | 7 | Kertu | Verb |
| 8 | 8 | Triinu | Kolk |
| 9 | 9 | Tõnis | Viip |
| 10 | 10 | Taavi | Kolk |
+-----------------+-----------+---------+----------+

我创建的表使用这些键:

create table Klient(
Klient_ID int unsigned not null auto_increment,
Eesnimi varchar(30) not null,
Perenimi varchar(30) not null,
PRIMARY KEY (Klient_ID));

create table Kliendikaart(
Kliendikaart_ID int unsigned not null auto_increment,
Klient_ID integer unsigned,
Eesnimi varchar(30) not null,
Perenimi varchar(30) not null,
PRIMARY KEY (Kliendikaart_ID),
FOREIGN KEY (Klient_ID) references Klient(Klient_ID));

最佳答案

你应该使用

UPDATE Kliendikaart kd
INNER JOIN Klient k ON kd.Eesnimi = k.Eesnimi
SET kd.Klient_ID = k.Klient_ID;

您的查询是针对 SQL Server,而不是针对 My SQL。并且您应该使用别名来进行简短易读的查询。

关于MySQL 将值复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com