0

我可以在数据库中搜索一个元素,我的 PreparedStatement 的其中一个参数是从我通常作为单独语句制作的变量中找到的值吗?

所以我想做

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);  

那么有没有办法将这些组合成两个语句?即:类似...

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

编辑:这可能更清楚。想象一下,我有一个 Cars 表,其中每辆车都有一个名称和一个 Owner_ID。我有一个用户表,其中每个用户都有一个名称、密码和 ID。每辆车的车主 ID 都是用户的 ID 之一。

因此,我真正想要(在单个语句中)得到的是所有名称为 X 的汽车的数量,其中它们的所有者 ID = 来自用户 Y 的 ID。

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 回答