-1

我在 java 中使用 MySQL。

我正在尝试更新表“regApartmentsTable”、“gardApartmentsTable”、“penthousesTable”之一中的“所有者”字段,该表为空,对应于特定的公寓编号和街道,并将其替换为字符串“newOwners”。

为此,我编写了以下代码:

st=connection.prepareStatement("UPDATE regApartmentsTable,gardApartmentsTable,penthousesTable SET owners=? " +
                "WHERE owners=? AND apartmentNum=? AND street=?");
st.setString(1, newOwners);
st.setString(2, "");
st.setInt(3, apartmentNum);
st.setString(4, streetName+" "+buildingNum);

我包括 3 个表格,因为我需要查看所有表格。(所需的公寓,没有所有者,并且与公寓编号和街道相匹配,如果它可以帮助任何人,则不能在一张以上的桌子上)。

但是,当我尝试运行此代码时,我收到“字段中的列‘所有者’不明确”错误。任何想法我应该如何编写 SQL 命令?提前谢谢!

澄清(来自较早的问题):好的,我知道由于“所有者”字段在这三个表中很常见,所以会引发异常。然而,我该如何解决这个问题?我无法在表格名称中添加前缀(例如 regApartmentsTable.owners),因为我不知道要在哪个表格中找到所需的公寓……如果我知道,我就不会在 3 个表格中进行搜索。

任何人都可以提出解决方案吗?我是否应该首先在 3 个表格中进行搜索,然后更新包含相应公寓的表格?

4

1 回答 1

2

您不能使用查询一次更新 3 个表。仅通过过程即可。

于 2013-03-18T08:35:49.500 回答