【发布时间】:2014-08-31 20:38:21
【问题描述】:
如果有人在其他地方问过这个问题,我提前道歉。我已经广泛寻找解决方案,但找不到。
我有一个我正在尝试更新的数据库。我正在使用 Microsoft Access 来执行此操作。
我有 1 个名为 products 的表,它有 4 列,如下所示:categoryID、categoryName、productID 和 newName。
我想要的是通过从“categoryID”和“productID”相等的“categoryName”中获取名称来生成新名称。问题是我的查询使用错误信息更新了“newName”列.
我的 SQL 查询如下:
UPDATE products
SET newName = categoryName
WHERE productID LIKE categoryID
_ 这些是我的表格示例:
这是我运行查询之前表格的样子:
TABLE NAME : products.
categoryID categoryName productID newName
1 Kids 7
2 Baby 5
3 Themes 4
4 General 4
5 Neon Glow 5
6 Costumes 4
7 1st Birthday 7
这是我运行查询时发生的情况:
TABLE NAME : products.
categoryID categoryName productID newName
1 Kids 7 Kids
2 Baby 5 Baby
3 Themes 4 Themes
4 General 4 General
5 Neon Glow 5 Neon Glow
6 Costumes 4 Costumes
7 1st Birthday 7 1st Birthday
这是我想要的输出:
TABLE NAME : products.
categoryID categoryName productID newName
1 Kids 7 1st Birthday
2 Baby 5 Neon Glow
3 Themes 4 General
4 General 4 General
5 Neon Glow 5 Neon Glow
6 Costumes 3 Themes
7 1st Birthday 7 1st Birthday
我的查询当前正在检查两个 ID 列是否相等,然后复制类别名称。 如果“productID”与“categoryID”相同,我希望“newName”字段填充与“categoryID”在同一行的“categoryName”。
请帮助我找出我的 SQL 语句中的错误。
提前致谢
【问题讨论】:
-
请适当地标记问题。它说 MS Access,但标签是 MySQL。我删除了那个标签并添加了 ms-access,但显然它由于某种原因被改回来了。
标签: sql ms-access join sql-update inner-join