【发布时间】:2016-10-25 13:00:43
【问题描述】:
我需要将 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;
但是
您的 SQL 语法有错误; ...在'FROM Kliendikaart附近 INNER JOIN Klient ON Kliendikaart.Eesnimi = Klient.Eesnimi' 在第 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语法下查看手册
标签: mysql sql join syntax-error inner-join