java - 在 JDBC 编程中在另一个查询中使用一个查询

标签 java sql jdbc subquery

我知道如何在 SQL 中在纸面上执行此操作,但在 Java 中实现此操作时遇到困难(这是我第一次真正编写 JDBC 内容)

例如,假设我的数据库包含:

电影(代码、标题、发行商)

客户(客户编号,姓名)

借用(custno代码)

我想找到借阅出版商 ABC 的每部电影的客户姓名

string no_of_ABC_movies = "SELECT COUNT(publisher), publisher FROM movie, WHERE movie.publisher = 'ABC'";

string no_of_cust_ABC_movies = "SELECT COUNT(name), name FROM customer, borrowed, movie, WHERE customer.custno = borrowed.custno AND borrowed.code = movie.code AND movie.publisher = 'ABC'";


String query = "SELECT name" +
                        " name FROM customer, borrowed, movie" +
                        " WHERE customer.custno = borrowed.custno AND" +
                        " borrowed.code = movie.code AND" +
                        " movie.publisher = 'ABC' AND" + " "
                         no_of_cust_ABC_movies + " = " + no_of_ABC_movies;

这不是我正在使用的确切数据库,但查询可以工作并打印出从 ABC 借电影的人的姓名,但没有最后一行,但说我在最后一行的 SQL 语法中有错误,所以我想我不知道如何在另一个查询中使用一个查询。

最佳答案

这取决于您的 DBMS,但我见过的每个 SQL 变体都需要子查询周围的括号。

尝试如下:

...

" movie.publisher = 'ABC' AND ("
no_of_cust_ABC_movies + ") = (" + no_of_ABC_movies + ")";

关于java - 在 JDBC 编程中在另一个查询中使用一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330225/

相关文章:

java - 使用 UiBinder 创建登录面板。如何让用户登录并显示其他小部件

sql - GROUP BY 或 COUNT 类似字段值 - UNPIVOT?

java - 通过jsp调用存储过程时出错

ruby-on-rails - 在 ActiveRecord 中使用 OrientDB 的 JDBC 驱动程序

java - 断言错误 : negative time oracle 11

java - 在java文件中查找详细信息

java - 无法更新从数据库获取的 JtextArea 文本同时手动插入(运行时)

mysql - 使用复合键从表中删除行

java - 将名称的第一个字符转换为大写的函数

sql - 在 UIWebView 中加载本地数据库