python中的sql问题

def sure1():
        a = varID.get()
        b = varSum.get()
        r1 = r'^([1-9]\d{5}[12]\d{3}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9xX])$'
        if  re.match(r1,a):
            result = askquestion('提示', '请确认充值信息!')
            if (result):
                conn2 = sqlite3.connect('users.sqlite')
                c2 = conn2.cursor()
                sql = "SELECT user_situation where user_id = %s" % a
                c2.execute(sql)
                c = c2.fetchall(1).row['user_balance']
                b = b+c
                c2.execute("UPDATE user_situation SET user_balance = ? where user_id = ?",(b,a))
                conn2.commit()
                conn2.close()
                window_3.close()

c2.execute(sql)报出no such column: user_situation问题
我想知道sql的正确用法,这里的想法是用a选中同行中的c列项,再用获取的b,使b=b+c,最后附在c的位置上,所以想知道后续代码有没有问题

sql的语法是select 列名 from 表名 where 链接条件
比如我想在tablea里选择和tableb同样的列就是select id from tablea where tablea.id=tableb.id

你少了表名
sql = "SELECT user_situation from 表名 where user_id = %s" % a