我需要加入两个表Companies
和Customers
。
Companies
表位于 MS SQLServer 中,Customer
表位于 MySQL服务器中。
实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
如果我理解正确,您需要在SQL Server中而不是在代码中连接表,因为标记是sql
。
如果我有权利,那么你需要做一些管理任务,比如服务器链接。
Here您可以解释如何将MySQL服务器链接到MSSQL服务器。
成功链接这些服务器后,语法很简单:
SELECT
[column_list]
FROM companies
JOIN [server_name].[database_name].[schema_name].[table_name]
WHERE ...
请记住,在访问链接服务器上存在的表时,您必须编写由四部分组成的名称。
答案 1 :(得分:0)
Map<WhatToJoinOn, Company>
和Map<WhatToJoinOn, Customer>
List<CompanyCustomer>
答案 2 :(得分:0)
要查询2个数据库,您需要2个单独的连接。在这种情况下,您还需要单独的驱动程序,因为您有一个MSSQL和一个MySQL数据库。因为您需要单独的连接,所以需要2个单独的查询。根据您的目的,您可以先检索Companies
,然后对Customers WHERE company = 'some value from COMPANIES'
(或其他方式)进行查询。
您也可以从他们自己的列表中的两个表中获取每一行,并在代码中比较这些列表,而不是使用查询。
答案 3 :(得分:0)
尝试以下方法:
1从SQL服务器检索Companies表中的数据,并以ArrayList<HashMap<String,String>>
格式存储所需的列。
因此,将行创建为arraylist索引,将HashMap创建为响应列名的键值对。键:列名称和值作为该行的列值。
2然后从Customer表中提取数据,通过将第一个Map中的数据转换为逗号分隔格式来添加where子句。因此,创建一个类似于SQL中的连接的过滤器。
将数据添加到与之前相同的结果集数据中,从而不会在HashMap中重叠列名称。
当你需要访问第5行column7然后你写
ArrayList.get(4)获得( “column7”);
给出了逻辑,请自行实施。