У меня есть 2 таблицы в MySQL.
Один имеет транзакции с важными столбцами, где каждая строка имеет идентификатор дебетового счета и идентификатор кредитного счета. У меня есть вторая таблица, которая содержит имя учетной записи и специальный номер, связанный с идентификатором учетной записи. Я хочу как-то попробовать SQL-запрос, который будет принимать данные из таблицы транзакций и назначать имя учетной записи и номер счета из второй таблицы.
Я пытался делать все, используя два запроса, один получал транзакции, а второй получал данные учетной записи, а затем я перебирал данные в фрейме и назначал все по одному, что не очень хорошая идея
query = "SELECT tr_id, tr_date, description, dr_acc, cr_acc, amount, currency, currency_rate, document, comment FROM transactions WHERE " \
"company_id = {} {} and deleted = 0 {} LIMIT {}, {}".format(
company_id, filter, sort, sn, en)
df = ncon.getDF(query)
df.insert(4, 'dr_name', '')
df.insert(6, 'cr_name', '')
data = tuple(list(set(df['dr_acc'].values.tolist() + df['cr_acc'].values.tolist())))
query = "SELECT account_number, acc_id, account_name FROM tb_accounts WHERE company_id = {} and deleted = 0 and acc_id in {}".format(
company_id, data)
df_accs = ncon.getDF(query)
for index, row in df_accs.iterrows():
acc = str(row['acc_id'])
ac = row['account_number']
nm = row['account_name']
indx = df.index[df['dr_acc'] == acc].tolist()
df.at[indx, 'dr_acc'] = ac
df.at[indx, 'dr_name'] = nm
indx = df.index[df['cr_acc'] == acc].tolist()
df.at[indx, 'cr_acc'] = ac
df.at[indx, 'cr_name'] = nm