在SQL Server中给了我几个表,我正在尝试找出联接它们的最佳方法。
我所做的是:
1) open a connection in R to the database
2) pull all the column names from the INFORMATION_SCHEMA.COLUMNS table
3) build loops in R to try every combination of columns and see what the row count is of the inner join of the 2 columns
我想知道是否有更好的方法可以解决此问题,或者是否有软件包或实用程序可以帮助解决此类问题。
答案 0 :(得分:-1)
您可以使用pandas在python中进行联接。 Pandas具有强大的IO引擎,因此您可以从SQL Server导入pandas数据帧,使用python执行联接,然后写回SQL Server。
下面是我用来执行从SQL Server导入和导出到MySQL表的脚本。我将python软件包sqlalchemy用于我的ORM连接。您可以按照以下示例操作,并阅读有关熊猫连接的信息。
import pyodbc
import pandas as pd
from sqlalchemy import create_engine
# MySQL info
username = 'user'
password = 'pw'
sqlDB = 'mydb'
# Create MSSQL PSS Connector
server = 'server'
database = 'mydb'
connMSSQL = pyodbc.connect(
'DRIVER={ODBC Driver 13 for SQL Server};' +
f'SERVER={server};PORT=1433;DATABASE={database};Trusted_Connection=yes;')
# Read Table into pandas dataframe
tsql = '''
SELECT [Index],
Tag,
FROM [dbo].[Tags]
'''
df = pd.read_sql(tsql, connMSSQL, index_col='Index')
# Write df to MySQL db
engine = create_engine(
f'mysql+mysqldb://{username}:{password}@localhost/mydb', pool_recycle=3600)
with engine.connect() as connMySQL:
df.to_sql('pss_alarms', connMySQL, if_exists='replace')