【发布时间】:2019-04-18 16:58:09
【问题描述】:
我在 MySQL 中有 2 个表。 一个具有重要列的交易,其中每一行都有借方账户 ID 和贷方账户 ID。我有第二个表,其中包含与帐户 ID 关联的帐户名称和特殊编号。我想以某种方式尝试 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
【问题讨论】:
-
您能否说明您是要合并 SQL 表还是尝试对 account_number 进行查询,如果是,您的预期输出是什么以及您希望输出的格式是什么?
-
我想输出账户信息。交易是在一张表中,我在两列中有帐户 ID,一是借方,一是贷方。在另一个表中,我有 ID、帐户名称、帐号并希望以某种方式加入输出,但我尝试过的查询(如 INNER JOIN)以某种方式给了我一堆错误
标签: python mysql python-3.x