Как создать SQL-запрос «один ко многим» - PullRequest
0 голосов
/ 20 июня 2019

У меня есть таблица с именем (center_info), в которой хранится информация об учащемся, оплаченные счета и общий остаток. и еще одна таблица с именем (center_payments), в которой хранятся записи о каждой дате счета, оплаченного студентом.
Я хочу объединить записи учащегося в таблице 1 (center_info), чтобы каждый день, когда он оплачивал счет в таблице 2 (center_payments)

ниже находятся записи в center_info:

id | student | term | bill | total_paid | total_balance | last_date_of_pymt |
---+---------+------+------+------------+---------------+-------------------+
 5    mary      1     400        200         -200            6 / june / 2019
 6    john      1     500        300         -200            2 / june / 2019
 7    grace     2     450        400         -50          17 / august / 2019
 8    mike      2     450        100         -350         15 / august / 2019

и ниже - разные даты платежей в center_payments:

id | student | paid | balance |     date     | term |
---+---------+------+---------+--------------+------+
5     mary     100     -300    3 / june /2019    1
5     mary     100     -200    6 / june /2019    1
6     john     150     -350    1 / june /2019    1
6     john     150     -200    2 / june /2019    1 
7     grace    400     -50     17 / aug /2019    2
8     mike     50      -400    5 / aug /2019     2
8     mike     50      -350    5 / aug /2019     2

Я хочу объединить записи студентов в таблице 1 и все их индивидуальные платежи в таблице 2, где термин (столбец) = 1

В настоящее время я могу распечатать только выбранного студента и просмотреть все его записи из двух таблиц с этим кодом:

int row = c_FirstTerm.getSelectedRow();
            try{
            String table_click=(c_FirstTerm.getModel().getValueAt(row,0).toString());    
            String sgl="select center_info.id,center_info.student,center_info.bill,center_info.Term,center_info.total_paid,center_info.total_balance,center_info.last_date_of_pymt,center_payments.paid,center_payments.balance,center_payments.date from center_info INNER JOIN center_payments on center_info.term=center_payments.term and center_info.id=center_payments.id and center_info.Student='"+table_click+"'";
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,e);
        }

но при условии, что я не выбираю конкретного студента, как мне создать отношение «один ко многим» для студентов и их индивидуальных платежей из обеих таблиц, где термин = 1. например, вот так:

//first group
id | student | paid | balance |     date     | term |
---+---------+------+---------+--------------+------+
5     mary     100     -300    3 / june /2019    1
5     mary     100     -200    6 / june /2019    1

id | student | term | bill | total_paid | total_balance | last_date_of_pymt |
---+---------+------+------+------------+---------------+-------------------+
 5    mary      1     400        200         -200            6 / june / 2019
_____________________________________________________________________________

//next group
id | student | paid | balance |     date     | term |
---+---------+------+---------+--------------+------+
6     john     150     -350    1 / june /2019    1
6     john     150     -200    2 / june /2019    1

id | student | term | bill | total_paid | total_balance | last_date_of_pymt |
---+---------+------+------+------------+---------------+-------------------+
 6    john      1     500        300         -200            2 / june / 2019
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...