問題是,兩個表都有主鍵,至今我還沒有任何其他標準SELECTS/INSERTS存在任何問題。我剛接觸JOINS,但我不明白爲什麼這不起作用。PostgreSQL中INNER JOIN查詢中'沒有主鍵'錯誤
我收到此錯誤信息:
org.postgresql.util.PSQLException: No primary key found for table devicetable.
但是,兩個表的主鍵是我選擇的列:deviceid
/username
。也許這跟它有關係?
我通過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();
訪問它使用SQL:
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
有趣的是,我最初把它作爲一個答案(因此我的答案是時間戳),但我選擇刪除它並改爲發表評論。無論如何,我放棄了我的答案。 –