2017-05-26 91 views
-4

SQL查詢如何從多個表中返回數據?前者爲 。我的sql查詢假設列出特定教室中的所有學生 ,但它只顯示1名學生。這可以通過系統輸出完成嗎?SQL查詢如何從多個表中返回數據?

if (forms.Validation.textNotEmpty(tfId)) { 
    try { 
     ResultSet rs = hogDB.getData("select * from student where sleepRoom = ("+tId.getText()+");"); 

     if (rs.next()) { 
      tfStudentId1.setText(rs.getString("student_id")); 
      tfForNamne1.setText(rs.getString("fornamne")); 
      tfAfterNamne1.setText(rs.getString("AfterNamn")); 
      tfSleep1.setText(rs.getString("sleepRoom")); 

     } 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

我建議使用英文變量名稱,列名等編碼。特別是如果你打算在國際委員會提問。我們需要更多信息。什麼是數據模型和人口?你有什麼嘗試過自己? –

+0

你有多個文本字段來顯示多個結果嗎?另外,將它從'if(rs.next()){'改爲'while(rs.next())''' –

+0

要從另一個表中指定字段, 'SELECT elevhem.ELEVHEM_ID ...'。 –

回答

0

要了解您是否真的只檢索一個或多個學生,下面是一段測試代碼的建議。

 try { 
      ResultSet rs = hogDB.getData("select * from student where sleepRoom = (" 
              + tId.getText() + ");"); 

      int count = 0; 
      while (rs.next()) { 
       System.out.format("%-10s%-20s%-20s%-8s%n", 
         rs.getString("student_id"), rs.getString("fornamne"), 
         rs.getString("AfterNamn"), rs.getString("sleepRoom")); 
       count++; 
      } 
      System.out.println("" + count + " students retrieved"); 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 

另一個可能的問題是tId.getText()一個數字?如果不是,你可能應該用查詢中的單引號括起來。無論如何,推薦的方法是通過一個?佔位符和一些setXx()調用準備好的語句將值傳遞給數據庫。