2017-08-03 7 views
-1

質問がありました。どうすればmysqlを使用して別のテーブルから2つの異なる変数を取得できますか?準備された文を使って1つのクエリから動作させることは可能ですか?私はjavaを使ったmysqlデータベースプログラミングでは新しいので、これは私の問題です。私が取得しようとしているJava MYSQLクエリは、異なるテーブルから2つの変数を取得します

user_key from user table 
project_key from project table 

を、はい、私は知っている、テーブル名は非単数形にする必要があります。

私がしようとしている:私はここで間違って

String project_key = null; 
String user_key = null; 
Class.forName("com.mysql.jdbc.Driver"); 

Connection con = DriverManager.getConnection("jdbc:mysql://mysql:" + Config.getPortDB() + "/" + Config.getDatabase() + "?" 
      + "user=" + Config.getUsername() + "&password=" + Config.getPassword()); 

String query ="SELECT user_key,project_key FROM user, project WHERE user_key = ? AND project_key = ?"; 

PreparedStatement preparedStatement = con.prepareStatement(query); 

for(int i = 0; i < auths.size() ; i++) { 
    preparedStatement.setString(i+1, auths.get(i)); 
} 

ResultSet rs = preparedStatement.executeQuery(); 

while(rs.next()) { 
    project_key = rs.getString("project_key"); 
    user_key = rs.getString("user_key"); 
} 

System.out.println(project_key); // null 
System.out.println(user_key); // null 

何をしているのですか?

+0

あなたのコードに何が起こっているのですか? –

+0

ResultSetから値を取得しようとすると「null」例外が発生する – Ervinas34

+0

そのコードを表示する必要があります –

答えて

0
SELECT u.user_key, 
     p.project_key 
FROM (select user_key from user WHERE user_key = ?) u, 
    (select project_key from project WHERE project_key = ?) p 

SELECT user_key,project_key 
FROM user, project 
WHERE user_key = ? 
    AND project_key = ? 

2つのテーブルから結果を取得するには、このように、に参加を使用サブクエリを使用して2つの値を取得することもできます

+0

ありがとうございますが、まだこれらのnull例外があります..:? – Ervinas34

+0

クエリは何も返しません。クエリに送信されるパラメータを確認し、別のクエリがいくつかの行を返すか確認します(たとえば、Workbench呼び出しから) – StanislavL

+0

Thanks @ StanislavL、クエリが機能しました。 本当に悪い朝を迎えてくれてありがとう、私は変数の名前を変更していたときにConfigファイルから文字列を解析するのを忘れていました。 – Ervinas34

0

これはあなたの現在のクエリです:牽引テーブルはまったく関係がない場合

SELECT u.user_key, p.project_key 
FROM user u 
JOIN project p ON p.userId = u.id 
WHERE u.user_key = ? 
    AND p.project_key = ? 
+0

"u"と "p"が意味するものを知りたいですか? – Ervinas34

+0

テーブルにuserIdとidカラムがあることをどのように知っていますか(ON p.userId = u.id) –

+0

@ Ervinas34 u - p - プロジェクト用。 FROMとJOINステートメントで見ることができます。 – Max

関連する問題