【问题标题】:How to give output from one query to next query如何将一个查询的输出提供给下一个查询
【发布时间】:2019-12-30 10:59:24
【问题描述】:

如何将一个查询的输出提供给下一个查询

我的出库mysql_db,员工表我会得到id的 select id from the employee

df['out']

         id
0        20017
1        20046
2        20047
...        ...
24337    47883
24338    47884

从表一中获取 id 并应用于mysql_db2employee 表,该表是否存在

select * from employee where id in ('df['out']')

【问题讨论】:

    标签: pandas pymssql


    【解决方案1】:

    如果您无法连接这两个表,因为它们位于不同的数据库中,我将使用 df['out'] 的值操作一个字符串,如下所示:

    valid_employee_ids = tuple(df['out'])
    cmd = f"""
       SELECT
         *
       FROM
         employee
       WHERE
         id IN {valid_employee_ids}
    """
    

    这会给你以下字符串:

    SELECT
      *
    FROM
      employee
    WHERE
      id IN (20046, 20047, 47883, 47884)
    

    关于 f 字符串的注意事项: 上面的字符串操作使用 f-strings,它仅在 Python 3.5 中可用。或者,您也可以像这样使用.format()

    cmd = "SELECT * FROM employee WHERE id IN {}".format(valid_employee_ids)
    

    【讨论】:

    • 我不确定该错误来自何处。您是否可能忘记了 f 字符串?输入print(cmd) 会得到什么?
    • 他可能使用 Python 2 或 fstrings 之前的版本,或者添加 .format 以涵盖这两个用例?
    猜你喜欢
    • 2016-04-13
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2022-11-19
    相关资源
    最近更新 更多