我知道如何在 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/