======= 我是SQL的新手。我一直想做的事情(在这里和互联网上经历了几十个主题之后)是一项简单的任务:
我想将表格“数字”从表B移到表A,条件是该数字的归属对应于表B中的相同名称和姓氏。
表AAA:
- [NAME], [SURNAME], [NUMBER]
- Bob , Dylan ,
- Jimi, Hendrix ,
等
表BBB:
- [TYPE] [AGE] [TOWN] [NAME] [SURNAME] [NUMBER]
- Guitarist , 95 , Denver , Bob , Dylan , 45
- Guitar , 45 , Paris , Jimi, Hendrix , 47
- Dancer , 40, New-york , Jimmy, Page , 69
- etc..
UPDATE AAA A
set A.NUMBER = B.NUMBER
FROM A INNER JOIN BBB B on A.NAME = B.name and A.SURNAME = B.SURNAME ;
它不起作用:( 很抱歉是一个令人不安的菜鸟,但我真的不知道该怎么做。
A语法附近的错误?
答案 0 :(得分:0)
似乎sqlite
不支持UPDATE上的联接。
您可以通过两种方式解决这个问题:
如果NAME
SURNAME
PRIMARY KEY
AAA
INSERT OR REPLACE INTO "AAA"(NAME,SURNAME,NUMBER)
SELECT "AAA".NAME,"AAA".SURNAME,"BBB".NUMBER
FROM "AAA"
INNER JOIN "BBB" ON "BBB".NAME = "AAA".NAME
AND "BBB".SURNAME = "AAA".SURNAME
,您可以这样做:
AAA
对于来自NUMBER
的{{1}} BBB
的每条记录,我们会INSERT OR REPLACE。
否则你可以这样做:
UPDATE "AAA"
SET NUMBER = (SELECT NUMBER
FROM "BBB"
WHERE "BBB".NAME = "AAA".NAME
AND "BBB".SURNAME = "AAA".SURNAME);