Sqlite 尝试从一个表到另一个表进行简单的sql插入,但不熟悉术语?
我花了一上午的时间从头开始学习SQL,但我正在努力尝试做这件简单的事情,我甚至不知道该怎么称呼它(某种插入连接?) 我有两张像这样的桌子Sqlite 尝试从一个表到另一个表进行简单的sql插入,但不熟悉术语?,sqlite,Sqlite,我花了一上午的时间从头开始学习SQL,但我正在努力尝试做这件简单的事情,我甚至不知道该怎么称呼它(某种插入连接?) 我有两张像这样的桌子 Table: ImageIDLookup Table: ImagesTable ID | ImageID Id | Path 21 | 147 147 | fu 42 | 268 268
Table: ImageIDLookup Table: ImagesTable
ID | ImageID Id | Path
21 | 147 147 | fu
42 | 268 268 | bar
53 | 547 547 | bla
etc... etc...
我所要做的就是使用名为“ImageID”和“Id”的两个表中的列将ImagesTable表中的“Path”列插入ImageIDLookup表中,这两个表中都有匹配的行
因此,ImageIDLookup表将变成
Table: ImageIDLookup
ID | ImageID | Path
21 | 147 | fu
42 | 268 | bar
53 | 547 | bla
etc...
我意识到这是基本的,但我发现研究简单的概念很困难,因为我没有它们的名字 首先将新列添加到
ImageIDLookup
:
ALTER TABLE ImageIDLookup ADD COLUMN Path TEXT;
UPDATE ImageIDLookup
SET Path =
(SELECT Path FROM ImagesTable
WHERE ImagesTable.Id = ImageIDLookup.ImageID);
其次,将路径值从ImagesTable
添加到ImageIDLookup
:
ALTER TABLE ImageIDLookup ADD COLUMN Path TEXT;
UPDATE ImageIDLookup
SET Path =
(SELECT Path FROM ImagesTable
WHERE ImagesTable.Id = ImageIDLookup.ImageID);
在MySQL上,您还可以执行以下第二步:
UPDATE ImageIDLookup
INNER JOIN ImagesTable ON ImageIDLookup.ImageID = ImagesTable.Id
SET ImageIDLookup.Path = ImagesTable.Path;
你没有试图插入任何内容。您正在更改一个表以添加一列,然后更新该表中的记录以将值放入该列。更改了该表,但更新代码抛出了一个“内部附近的语法错误”。我仔细检查了你所有的拼写,唯一的错误是.ImageId应该是.ImageId。我哪里都不需要引号,是吗?对不起,我的意思是我修正了你的打字错误,但我仍然得到一个“内部语法错误”。还有什么问题吗?您使用的是哪种数据库?至少它可以在mysql中工作:哦,我正在使用SQLite。对不起,这对所有这些有影响吗?我正在使用SQLite管理器,它可以生成一些更新样板文件,它使用方括号,就像这样。。。更新tableName集分配[,分配]*[其中expr]