2016-04-02 22 views
-1

クエリでは、2つのテーブルを結合します。しかし、我々は次のエラーを取得する:ここで2つのテーブルを結合できません

org.postgresql.util.PSQLException: ERROR: missing FROM-clause entry 
for table "component" Position: 48 at 
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270) 
    at 
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998) 
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) 
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570) 
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:406) 
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:286) at datab.Datab.testDB(Datab.java:73) at datab.Datab.main(Datab.java:60) 

は私のコードです:

public static void testDB(Connection con){ 
    //RUN AN EXAMPLE QUERY 
    try { 
    if (!con.isClosed()) 
    { 
     Statement st = con.createStatement(); 
     String query = "SELECT * FROM \"Component\" inner join \"Kind\" on Component.Kind_ID = Kind.ID"; 
     ResultSet rs = st.executeQuery(query);     

     while (rs.next()) 
     {     
     System.out.println(rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3));        
     } 
    }      
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 
+4

引用符で囲まれた識別子は良いアイデアではありません、なぜ別の良い例。 –

答えて

7

これはあなたのSQL文です:

SELECT * 
FROM "Component" 
    inner join "Kind" on Component.Kind_ID = Kind.ID 

テーブル名"Component"componentとは異なるテーブル名です。これらの恐ろしい引用符付き識別子を使用し始めると、どこでもを使用する必要があります。あなたは私達にあなたのテーブル定義を示さなかったが、私はあなたにも列名を引用する必要が疑わ:

SELECT * 
FROM "Component" 
    inner join "Kind" on "Component"."Kind_ID" = "Kind"."ID" 

あなたはこれを変更することができる場合、私は強く、二重引用符を使用してせずに再作成テーブルすることをお勧めします。引用符で囲まれた識別子について

詳細は、マニュアルにあります。
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

+0

コンポーネントの中に二重引用符を含めないでください。 –

+0

@MarkRotteveel:エラーメッセージによるものではありません。 –

+0

こんにちはマーク、Netbeansは、\ tabblename \ " – ssjmessi10

関連する問題