[英]Using one query in another in JDBC programming
我了解如何在纸上使用SQL进行此操作,但是在用Java实现该功能时遇到了麻烦(这是我第一次真正编程JDBC东西)
例如,假设我的数据库包括:
电影( 代码 ,标题,出版商)
客户(custno,名)
借用( custno , code )
我想找到借出版商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 + ")";
您有双名字段的问题,但查询中没有逗号分隔。
如果您的代码与上面的代码完全相同,则在最后一个缺少行的+上方连接字符串时,您会遇到编译错误。
如果是这样,我的建议是错字。
而且您的最后一行是错误的..您不能以这种方式比较两个选择查询。.仅添加所需的where子句。
(您应该先阅读数据库联接,然后再解决问题)
我想让查询在查询浏览器或工作台中正常工作,然后将其复制到Java中。 一次可以将它保持在一件新事物上...
您要查询的实际上是从
SELECT name name FROM customer ...
name
列重复-可能是问题所在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.