Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从两个表中选择记录_Java_Mysql - Fatal编程技术网

Java 从两个表中选择记录

Java 从两个表中选择记录,java,mysql,Java,Mysql,我有以下代码片段: Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from books"); ResultSetMetaData resMetaData = rs.getMetaData(); int nCols = resMetaData.getColumnCount(); for (int kCol = 1; kCol <= nCols; kCol++)

我有以下代码片段:

 Statement stmt = conn.createStatement();
 ResultSet rs = stmt.executeQuery("select * from books");
 ResultSetMetaData resMetaData = rs.getMetaData();
 int nCols = resMetaData.getColumnCount();
 for (int kCol = 1; kCol <= nCols; kCol++) {
    System.out.println(resMetaData.getColumnName(kCol));
 }
 while (rs.next()) {
    for (int kCol = 1; kCol <= nCols; kCol++) {
       String s = null;
       if (kCol == nCols){
        Statement stmt1 = conn.createStatement();
        ResultSet rs1 = stmt1.executeQuery("select category_name from categories where category_id = " + rs.getString(kCol));
        s = rs1.getString(2);
    }
    else{
        s = rs.getString(kCol);
    }
    System.out.println(s);
   }
 }
在我的数据库中有两个表:书籍和类别。在这两个表中,我都有一列*category_id*。代码从表books中选择记录。此表中的*category\u id*与表categories中的*category\u id*匹配。在这个表中,我还有一行:category\u name。我希望应用程序从*category_name*中写入与table books中的category_id匹配的名称。我试过了,但失败了。那么,你能告诉我一些想法吗?
谢谢

您应该熟悉连接选择books.books\u name、books.category\u id、categoty.category\u name FROM books LEFT JOIN categories ON books.category\u id=categories.category\u id您可以使用SQL连接来完成。用类似于上面的查询替换您的查询,看看它是否能解决您的问题。我想问:有没有可能直接从rs1检索值,即通过在smtm1中执行查询?