代码之家  ›  专栏  ›  技术社区  ›  Marz_89

python mysqldb打印表a中不在表b中的行

  •  0
  • Marz_89  · 技术社区  · 6 年前

    我有两张桌子, sales_olap resellers

    我需要打印出转售商的来源 销售业务 不存在于 转售商 桌子

    例如:

    result = cursor.execute("SELECT SO.reseller_name FROM sales_olap AS SO WHERE 
    SO.reseller_name!=(SELECT reseller FROM resellers)")
    for row in result:
        print row
    

    但我犯了个错误: 1242, Subquery returns more than 1 row

    我怎样才能让它只打印经销商的名字 销售业务 它们不存在的表 转售商 桌子?

    如果我试着做:

        result = cursor.execute("SELECT reseller_name FROM sales_olap WHERE reseller_name NOT IN(SELECT reseller FROM resellers)")
        for row in result:
            print row['reseller_name']
    

    然后我得到错误: TypeError: 'long' object is not iterable

    1 回复  |  直到 6 年前
        1
  •  0
  •   Marz_89    6 年前

    通过这样做,我们可以做到:

    cursor.execute("SELECT reseller_name FROM sales_olap LEFT JOIN resellers ON sales_olap.reseller_name=resellers.reseller WHERE resellers.reseller IS NULL")
    result = cursor.fetchall()
    
    for row, in result:
        print (row)