0

PreparedStatement の引数の 1 つに、通常は別のステートメントとして作成する変数から見つかった値を持つデータベース内の要素を検索できますか?

だからやりたい

preparedStatement = conn.prepareStatement("SELECT COUNT(*) FROM table1 WHERE Name = ? AND WHERE  user_ID = ?);  
preparedStatement.setString(1, name);  
preparedStatement.setString(2, userID);    
rs = preparedStatement.executeQuery();  

現状を除いて、別のテーブルで userID 変数を見つけるには別のステートメントが必要です。何かのようなもの:

preparedStatement = conn.prepareStatement("SELECT user_id FROM users WHERE name = ?);  
preparedStatement.setString(1, theirName);  

これらを 2 つのステートメントに合成する方法はありますか? 例:次のような...

"SELECT COUNT(*) FROM table1 WHERE Name = (user_ID FROM users WHERE username = theirName); 

編集:これはより明確かもしれません。各車に名前と Owner_ID がある Cars のテーブルがあるとします。また、各ユーザーが名前、パスワード、および ID を持つユーザーのテーブルがあります。すべての車の所有者 ID は、ユーザー ID の 1 つです。

したがって、(1 つのステートメントで) 本当に取得したいのは、所有者 ID = ユーザー Y の ID である、名前 X のすべての車の数です。

4

1 に答える 1

2

これは、テーブルを結合することによって行われます。

SELECT COUNT(*) FROM 
    table1 t1
    JOIN table2 t2 ON t2.name = t1.name
WHERE t1.name = "John" AND t2.user_ID = 2342433
于 2013-04-15T04:18:34.607 に答える