2017-08-20 4 views
0

Ich möchte den Inhalt von zwei Tabellen zu einer Liste zusammenführen.Ich bin neu in der Programmierung und ich arbeite an einem Schulprojekt.Ich brauche Daten aus zwei Tabellen in einer Tabelle angezeigt werden die Anwendung. Der aktuelle Code funktioniert, aber wenn ich zwei Zeilen in der Datenbank habe, werden in der Anwendungstabelle beide Zeilen zweimal angezeigt, wenn ich drei Zeilen habe, wird es neun Mal angezeigt und so weiter. Ich möchte keine Wiederholungen. Ich hoffe, Sie verstehen meine Frage an Sie.Verbinden Sie zwei Tabellen in einer Liste

Ich habe dies in meinem Modell:

public static ObservableList<archivesModel> takeArchives() { 
     ObservableList<archivesModel> archives = FXCollections.observableArrayList(); 
     try { 
      Base.connect(); 
      PreparedStatement st= connection.prepareStatement("SELECT * FROM destination,rent");    
      ResultSet rs= st.executeQuery();    
      while (rs.next()) {  
       archivesModel z; 
       z = new archivesModel(
         rs.getString(FIRST_DESTINATION), 
         rs.getString(LAST_DESTINATION), 
         rs.getInt(AMOUNT), 
         rs.getString(FIRST_DATE), 
         rs.getString(LAST_DATE)); 
       archives .add(z);     
      } 
      Base.disconnected();     
     } catch (SQLException ex) {Logger.getLogger(archivesModel.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     return archives; 
    } 

Und in meinem Controller Ich habe

public void initialize(URL url, ResourceBundle rb) { 
     ObservableList<archivesModel> data = archivesModel.takeArchives(); 

     first_destination.setCellValueFactory(new PropertyValueFactory<archivesModel, String>("first_destination")); 
     last_destination.setCellValueFactory(new PropertyValueFactory<archivesModel, String>("last_destination")); 
     amount.setCellValueFactory(new PropertyValueFactory<archivesModel, Integer>("amount")); 
     first_date.setCellValueFactory(new PropertyValueFactory<archivesModel, String>("first_date")); 
     last_date.setCellValueFactory(new PropertyValueFactory<archivesModel, String>("last_date")); 

     archivesRentTbl.setItems(data); 
    } 
+1

Gibt es eine Verbindung oder Beziehung zwischen den beiden Tabellen? –

Antwort

2

Sie müssen auch die Beziehungen zwischen diesen beiden Tabellen berücksichtigen. Unter der Annahme, dass beide Tabellen haben den Schlüssel „rent_id“ Sie beiden Tabellen beitreten könnten die folgende SQL-Abfrage:

SELECT * FROM destination a JOIN rent b ON a.rent_id = b.rent_id 
+0

Ihre Lösung hat geholfen, vielen Dank für Ihre Hilfe. – marin

Verwandte Themen