【问题标题】:Using Joins to fetch specific sets of data使用 Joins 获取特定的数据集
【发布时间】:2021-10-29 22:44:05
【问题描述】:

我正在尝试使用从 3 个不同的 MySQL 数据库表接收到的数据打印试算表。

结构如下:

[PostGL]:AccountLink、借方和贷方

[GLAccountTypes] : AccountType , 描述

[帐户]:AccountLink、AccountType、帐号

我正在尝试使用以下 SELECT 查询来获取数据:

Views.py:

def Kyletrb(request):
    trialBalance =  'SELECT  [dbo].[PostGL].[Debit] , [dbo].[PostGL].[Credit], [dbo].[Accounts].[Master_Sub_Account] ,[dbo].[_etblGLAccountTypes].[cAccountTypeDescription] FROM [Kyle] INNER JOIN [Kyle].[dbo].[_etblGLAccountTypes] ON [Kyle].[dbo].[PostGL].[AccountLink] = SELECT [Kyle].[dbo].[Accounts].[AccountLink] INNER JOIN [Kyle].[dbo].[PostGL] ON [Kyle].[dbo].[Accounts].[iAccountType] =   [dbo].[_etblGLAccountTypes].[idGLAccountType] '

    cursor.execute(trialBalance);
    trialBalanceFinal = [tup[0] for tup in cursor.fetchall()]

    return render(request , 'main/Kyletrb.html' , {'trialBalance' : trialBalanceFinal} )

错误信息:

/Kyletrb 处的名称错误 名称“光标”未定义 请求方法:GET 请求网址:http://localhost:8000/Kyletrb Django 版本:3.2 异常类型:名称错误 异常值:
名称“光标”未定义 异常位置:C:\Users\KylePOG\Documents\GMA Programming\accConnect\main\views.py,第 26 行,在 Kyletrb Python 可执行文件:C:\Users\KylePOG\AppData\Local\Programs\Python\Python39\python.exe Python版本:3.9.4 Python 路径:
['C:\Users\KylePOG\Documents\GMA Programming\accConnect', 'C:\Users\KylePOG\AppData\Local\Programs\Python\Python39\python39.zip', 'C:\Users\KylePOG\AppData\Local\Programs\Python\Python39\DLLs', 'C:\Users\KylePOG\AppData\Local\Programs\Python\Python39\lib', 'C:\Users\KylePOG\AppData\Local\Programs\Python\Python39', 'C:\Users\KylePOG\AppData\Local\Programs\Python\Python39\lib\site-packages'] 服务器时间:2021年8月31日星期二11:00:05 +0000

我期望的输出是:

是否无论如何在 SQL 查询中使用 JOIN 函数来获取 accountLink 和 accountTypes 匹配的 Account Number 、 Description 、 Credit & Debit

【问题讨论】:

  • 是的,JOIN 是标准方式。
  • 询问 SQL 问题时。您应该提供示例表格数据和预期结果,全部作为格式化文本(不是图像)。minimal reproducible example - 轻松为您提供帮助!

标签: python mysql sql join select


【解决方案1】:

您可以像这样简单地连接所有三个表:

SELECT t1.AccountNumber, t2.Description, t3.Credit, t3.Debit
FROM Accounts t1 
   INNER JOIN GLAccountTypes t2
      ON t1.AccountType = t2.AccountType
   INNER JOIN PostGL t3
      ON t1.AccountLink = t3.AccountLink

【讨论】:

  • 我现在已经用 SQL Query 编辑了代码,这就是它本质上必须做的。 (不确定我的格式是否正确)
  • 我已经测试过了。根据问题,它现在显示带有执行功能的错误消息。我已经在一行上添加了 SQL 查询(认为这是问题所在),但它仍然没有执行。
  • @KyleStranger 错误信息到底是什么?
  • NameError 异常值:名称“光标”未定义异常位置
  • 所以这不是声明中的错误。好像您没有定义光标或定义错误。
猜你喜欢
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多