問題は、両方のテーブルにプライマリキーがあり、他の標準SELECTS/INSERTSで問題が発生していないことです。私はJOINSの新人ですが、なぜこれがうまくいかないのか分かりません。 deviceid
/username
:PostgreSQLのINNER JOINクエリで 'No Primary Key'エラーが発生しました
org.postgresql.util.PSQLException: No primary key found for table devicetable.
しかし、両方のテーブルの主キーは、私が選択してるのカラムは次のとおりです。私は
は、このエラーメッセージが表示されます。おそらくこれには関係がありますか?
私はSQLでJDBC
PreparedStatement query = curSQL.getConn().prepareStatement("SELECT devicetable.pushid FROM devicetable, usertable WHERE usertable.username=? AND usertable.deviceid = devicetable.deviceid", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
query.setString(1, username);
ResultSet rs = query.executeQuery();
if (rs.next()){
rs.updateString("pushid", pushID);
rs.updateRow();
}
rs.close();
query.close();
経由でアクセスしています:
SELECT devicetable.pushid FROM devicetable, usertable
WHERE usertable.username=?
AND usertable.deviceID = devicetable.deviceID
明示的な結合を試したことがありますか? 'FROM devicetable JOIN usertable on usertable.deviceID = devicetable.deviceID'を実行し、WHERE句から' usertable.deviceid = devicetable.deviceid'部分を削除してください。 –
これはうまくいった!答えとして入れて、私はそれを受け入れます。 – user705142
面白い、私は元々答えとして(私の答えのタイムスタンプ)しかし、私はそれを削除し、代わりにコメントのために行きました。とにかく、私は答えを元に戻しました。 –