Python MySQLdb выводит строки из таблицы A, где нет таблицы B - PullRequest
0 голосов
/ 07 июня 2018

У меня есть две таблицы: sales_olap и resellers

Мне нужно распечатать, какой посредник из 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

Как заставить его печатать только имена посредников из таблицы sales_olap, где они не существуют в resellersтаблица?

Если я попытаюсь сделать:

    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 Ответ

0 голосов
/ 08 июня 2018

смог заставить это работать, сделав это так:

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)
...