如何在一个脚本中使用 R 将 SQL 查询中的数据插入到单独的 SQL 查询中?

Posted

技术标签:

【中文标题】如何在一个脚本中使用 R 将 SQL 查询中的数据插入到单独的 SQL 查询中?【英文标题】:How to insert data from a SQL query into a separate SQL query using R in one script? 【发布时间】:2020-07-16 00:32:26 【问题描述】:

我正在尝试编写一个 R 脚本来从 SQL Server 中的两个表中提取数据。目前,有两种单独的 SQL 查询:一个根据年份和名称查询一列 ID;第二个使用从第一个查询中找到的那些 ID 来查找我们需要的数据。目前,要获取 ID,我只需手动更改年份和/或名称,然后将 ID 复制并粘贴到第二个查询中。

R 有没有办法为我从第一个查询中复制和粘贴 ID?

这是第一个 SQL 查询:

SELECT Distinct [ID], [col1], [col2], ...
FROM [datatable1]
WHERE Year = XXXX AND Name in ('SomeText')

第二个查询使用第一个查询的 ID 执行以下操作:

SELECT [colA], [colB], ...
FROM [datatable2]
WHERE Year = XXXX and ID in ('ID1', 'ID2', 'ID3',....)

因为我在 R 中使用 RODBC 包执行此操作,所以我想知道是否有一种方法可以在一个脚本中执行此操作,只需更改年份和来自第一个查询的名称。

【问题讨论】:

【参考方案1】:

如果我正确地关注了你,你可以在一个带有exists 和相关子查询的查询中做你想做的事:

select col1, col2, ... 
from datatable2 t2
where exists (
    select 1
    from datatable1 t1
    where 
        t1.year = xxxx 
        and t1.name in ('sometext') -- better written as "t1.name = 'sometext'"
        and t1.id = t.id
        ad t1.year = t2.year
)

【讨论】:

以上是关于如何在一个脚本中使用 R 将 SQL 查询中的数据插入到单独的 SQL 查询中?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据数据表生成脚本? (将 DataTable 转换为 SQL 查询)

如何将sql查询输出存储在shell脚本中的变量中

将R链接到HANA时如何在SQL查询中选择全部或部分向量

SQL 脚本中的 SQL 查询

将SQL查询中的表直接写入R中的其他数据库

如何在 R 中使用 SQLsave 进行查询?