for循环多个值,returnf返回只有一个值了

使用select查询出数据,return返回的时候永远只有一个值
如何依次返回class_id的值

     def subject(self):
        class_id = []
        bject = self.conn.cursor()
        bject.execute("SELECT * FROM t_con_class_subject")
        bject_all = bject.fetchall()
        for i in bject_all:
             teacherid = i[2]
             class_id = i[0]
        return teacherid, class_id

sudent_site函数在接收class_id一直就是一个值,在subject函数已经查询出全部的值

    def sudent_site(self, class_id):
        sudent = []
        sudent_id_list = []
        cur = self.conn.cursor()
        name = self.conn.cursor()
        cur.execute("SELECT studentid FROM t_e_student_site WHERE classid=%s", (class_id,))

我想过的办法是先把class_id查询出来然后保存到class_id[]列表中,但是实际的都一样,保存在列表中还是需要循环出来,是哪里的问题

阅读 8.1k
2 个回答

先弄清楚自己的需求:
要一个一个查:就用列表保存然后for循环,或者用生成器
要全查:一次多表就用联合查询或者一次单表用in查询

example:

def subject():
    for class_id in range(10):
        yield class_id
        
g = subject()       
for class_id in g:
    sudent_site(class_id)      

class_id = i[0]就是每次都把class_id覆写了一遍啊,如果你想在原来的class_id列表中增加元素,你应该使用class_id.append(i[0])

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题