我目前正在为一个预先存在的数据库(在mySQL中)生成一个报告生成应用程序(在Visual Basic中),我需要在多个表中提交查询以访问所需的所有信息;但是,我对这类项目的经验是有限的。我希望有人能指出我实现这一目标的有效方法。
在初始报告中,我需要3个表中的数据。
表1)'发票' - 表格结构包含日期,发票编号和客户编号(以及其他非相关列)
表2)'transaction_data' - 表结构包含发票号,帐单代码和项描述(以及其他非相关列)。表格的每一行都包含单个发票中的单个行项目(因此此表格中可能有多行包含相同的发票编号)。
表3)'客户' - 表格结构包含客户编号,姓名,地址,电话(以及其他非相关列)。
我需要能够根据日期搜索“发票”,以获取指定时间范围内所有发票号的列表(及其相应的客户编号)。然后,我需要获取发票编号列表,并为包含其中一个发票编号的每一行搜索“transaction_data”,并检查特定的帐单代码。如果账单代码不存在,我需要使用客户编号(在发票搜索期间获得)将发票编号,客户名称,地址,电话号码列表放在一起。
这可以通过使用for / while循环填充数组变量来相当容易地完成,但是需要在不同的表中进行多次查询...其中'invoice'和'customers'有20k +条目和'transaction_data'表已经结束100k条目。当然,这不是编制所述数据的最有效方式。
有人可以指导我如何有效地构建查询吗?在此先感谢帮助数据库noobie!
答案 0 :(得分:-1)
在MySQL手册中查找JOINS。您可以将这三个表连接在一起,并使用WHERE子句获取所需的特定行,这些行与您要搜索的条件相匹配。不需要循环。