4

我正在使用 ADO 构建一个带有 MySQL 后端的 MS Access 2010 应用程序。到目前为止,我已经成功地将我的 ADO 记录集绑定和更新到表单。但是,我刚刚创建了第一个查询,其中包含两个带有 INNER JOIN 的表,当两个表都返回字段时,我无法更新返回的记录集。这第一个查询我能够成功绑定和更新。

SELECT table_A.a, table_A.b
FROM table_A INNER JOIN table_B ON table_B.c = table_A.c; 

但是,当我从 table_B 添加一个字段时,记录集不能再通过绑定表单更新。新的 MySQL 语句如下所示。

SELECT table_A.a, table_A.b, table_B.a
FROM table_A INNER JOIN table_B ON table_B.c = table_A.c; 

我已经阅读了论坛,并且我的查询似乎没有受到阻止记录集可更新的常见问题的影响(即,缺少主键、聚合函数、SELECT DISTINCT ......)。一些论坛建议我的问题可能与记录集之间的歧义有关,但我无法确认这一点,似乎这应该有效。任何帮助深表感谢。

4

2 回答 2

1

尝试这个:

SELECT table_A.a, table_A.b, CONCAT(table_B.a, '') FROM table_A LEFT JOIN table_B ON table_B.c = table_A.c;
于 2013-02-06T19:21:41.643 回答
0

在第一个查询中,显示/检索的记录集属于单个表,因此可以对其进行更新。但是,与第二个查询一样,由于连接两个表(列属于 2 个表)而检索到的记录集,因此不能直接更新。

为了根据另一个表中的数据更新一些数据,您可以使用以下查询

更新 Table_A,Table_B 设置 Table_A.a=Table_B.a 其中 Table_A.b=Table_B.b

于 2012-12-25T17:29:01.320 回答