df = pd.read_sql(f"SELECT * FROM v_nomenclature_sales_jm WHERE nomenclature_id IN {nomenclature_id};", con=db_connect)
Тут только текстом можно список подставить. Большинство клиентских библиотек не может в связываемые параметры подставлять наборы.
Либо ещё вариант -- через временную таблицу...
тип если я не переменной а просто текст то одним запросом, или что-то н епонял
Да, ты правильно понял. Текстуально надо подставить в запрос список. Это плохо, это SQLInjection почти гарантированный, но вот так.
погоди, даже если у меня nomenclature_id просто текст, то не канает? а если не переменная то канает?
Ну я немного запутался в твоих "канает не канает"
такой текст я передаю в переменную nomenclature_id (11068, 11070, 11079, 9188, 11069, 9191, 11078, 11269, 9187, 9190, 11441, 8918, 13092, 12824, 13312, 9189, 11439, 8909, 11075, 11084, 11848, 13082, 11074, 11073, 12641, 11773, 13127, 12642, 10415, 11072, 11849, 10414, 8917, 10413, 13272, 11951, 10187, 10192, 9670, 12196, 12247, 13273, 9240, 12207, 8916, 11851, 11261, 10188, 10191, 10189, 11071, 13294, 13287, 10190)
На псевдо коде df = pd.read_sql(f"SELECT * FROM v_nomenclature_sales_jm WHERE nomenclature_id IN ( " + str(nomencl_id_list) + ")", con=db_connect)
Так нельзя в bind parameter передавать.
Обсуждают сегодня