【发布时间】:2013-03-17 22:49:05
【问题描述】:
我正在使用 java 中的 MySQL。
我正在尝试更新表“regApartmentsTable”、“gardApartmentsTable”、“penthousesTable”之一中的“所有者”字段,该表为空,对应于特定的公寓编号和街道,并将其替换为字符串“新业主。
为此,我编写了以下代码:
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 命令? 提前谢谢!
编辑: 我没有得到足够的答案来解决我的问题...好吧,我知道异常会引发,因为“所有者”字段在这三个表中很常见。 然而,我该如何解决这个问题?我无法在表格名称中添加前缀,因为我不知道要在哪个表格中找到所需的公寓...如果我知道,我就不会在 3 个表格中进行搜索。
【问题讨论】:
-
您知道您只能通过连接更新
UPDATE上的一个表吗? -
我不确定我是否完全理解您所说的,但我根本不打算更新多个表。
-
该错误意味着您在多个表中有
owners列。您需要在owners前面指定适当的表名,例如regApartmentsTable.owners。或者,您可以使用别名来保存输入,例如regApartmentsTable AS a,然后只需:a.owners就足够了。
标签: java mysql jdbc sql-update