-1

私はJavaでMySQLを使用しています。

テーブル「regApartmentsTable」、「gardApartmentsTable」、「penthousesTable」のいずれかで「owners」フィールドを更新しようとしています。これは空で、特定のapartmentNumとstreetに対応し、文字列「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つのテーブルを含めます。(所有者がなく、apartmentNumとstreetに一致する必要なアパートは、誰かを助ける場合、複数のテーブルに含めることはできません)。

しかし、このコードを実行しようとすると、「フィールドの列'所有者'があいまいです」というエラーが発生します。SQLコマンドを他にどのように書くべきか考えていますか?よろしくお願いします!

明確化(以前の質問から):わかりました。これらの3つのテーブルでは、「所有者」フィールドが一般的であるため、例外が発生することを理解しました。それでも、どうすれば問題を解決できますか?必要なアパートを見つけるテーブルがわからないため、テーブルの名前(regApartmentsTable.ownersなど)にプレフィックスを追加できません...知っていれば、3つのテーブルを検索していなかったでしょう。

誰かが解決策を提案できますか?最初に3つのテーブルを検索してから、適切なアパートが含まれているテーブルを更新する必要がありますか?

4

1 に答える 1

2

クエリを使用して一度に 3 つのテーブルを更新することはできません。手順のみで可能です。

于 2013-03-18T08:35:49.500 に答える