1

我正在尝试更新 MS Access 数据库中包含一些电影信息的表

    [表:电影]
    电影名称 CrewId CrewMember
    大莱博夫斯基 1 乔尔·科恩
    大莱博夫斯基 2 埃塞尔·科恩
    大莱博夫斯基 3 卡特伯威尔
    大莱博夫斯基 4 罗杰·迪金斯
    黑客帝国 1 安迪·沃卓斯基
    黑客帝国 2 拉娜·沃卓斯基
    黑客帝国 3 唐·戴维斯
    黑客帝国 4 比尔教皇

CrewId 1 是导演,2 是副导演,依此类推。

我想要做的是将“CrewMember”列中的联合导演姓名替换为“导演助理姓名”,如下所示

    [表:电影]

    电影名称 CrewId CrewMember
    大莱博夫斯基 1 乔尔·科恩
    乔尔·科恩 (Joel Coen)的 The Big Lebowski 2       助手
    大莱博夫斯基 3 卡特伯威尔
    大莱博夫斯基 4 罗杰·迪金斯
    黑客帝国 1 安迪·沃卓斯基安迪·沃卓斯基
    的《黑客帝国2》       助手
    黑客帝国 3 唐·戴维斯
    黑客帝国 4 比尔教皇

我正在使用以下查询,它给出了语法错误(缺少运算符)。

    更新 t1
    SET t1.CrewMember = '助理'+ t2.CrewMember
    来自电影 t1,电影 t2
    WHERE t1.MovieName = t2.MovieName
    和 t1.CrewId = 2
    和 t2.CrewId = 1;

请帮我解决这个问题

4

3 回答 3

2

尝试这个 :

UPDATE Movies as t1, Movies as t2
SET t1.CrewMember = 
'Assistant of ' + t2.CrewMember
WHERE t1.MovieName=t2.MovieName AND t1.CrewId=2 AND t2.CrewId=1
于 2013-07-11T20:52:51.907 回答
1

在 Access 中,字符串连接是使用“&”完成的

所以应该是:

UPDATE t1
    SET t1.CrewMember = 'Assistant of '& t2.CrewMember
    FROM Movies t1, Movies t2
    WHERE t1.MovieName = t2.MovieName
    AND t1.CrewId = 2
    AND t2.CrewId = 1;
于 2013-07-11T20:32:50.863 回答
0

我猜原因是因为 Access 中的字符串连接运算符是&,不是+。另外,我认为 Access 需要asfor 表别名,您可以使用joinfor 条件:

UPDATE t1
    SET t1.CrewMember = 'Assistant of '+ t2.CrewMember
    FROM Movies as t1 join
         Movies as t2
         on t1.MovieName = t2.MovieName
    where t1.CrewId = 2 AND t2.CrewId = 1;
于 2013-07-11T20:34:55.357 回答