сейчас у меня есть минимальное, максимальное значение из таблицы1, которое определяет диапазон значения.В таблице 2 есть логический столбец, значение которого определяется значением min и max в таблице table1.Если фактическое число находится в пределах диапазона, значение будет F (означает, что нет проблем), и наоборот.после того, как я запустил свои коды, только первые две строки столбца оказались ложными.Я не знаю, что не так с моими кодами.Мои коды для цикла блока, как показано ниже.Из которых records1 - это фактические значения в таблице2, а записи2 и записи3 - минимальные и максимальные значения из таблицы1 соответственно.Я использую этот оператор forloop, чтобы получить одну запись из трех групп чисел, а затем в операторе if внутри него я определяю каждое значение логического столбца, проверяя, находится ли record1 в диапазоне между min (record2) и max (record3).) ценности.
conn = psycopg2.connect(conn_string)
# conn.cursor will return a cursor object, you can use this cursor to perform queries
#get the actual number
curs1 = conn.cursor()
statement='SELECT value FROM table2'
curs1.execute(statement)
records1=curs1.fetchall()
#get the minimum number
curs2 = conn.cursor()
statement2='SELECT min FROM table1'
curs2.execute(statement2)
records2=curs2.fetchall()
#get the maximum number
curs3 = conn.cursor()
statement3='SELECT max FROM table1'
curs3.execute(statement3)
records3=curs3.fetchall()
for record1 in records1:
for record2 in records2:
for record3 in records3:
while record1 >= record2 and record1 <=record3::
statement4='UPDATE table2 SET column = false WHERE record1 >= record2 and record1 <= record3'
curs4 = conn.cursor()
curs4.execute(statement4)
else:
statement5='UPDATE table2 SET column = true WHERE record1 <= record2 or record1 >= record3'
curs5 = conn.cursor()
curs5.execute(statement5)
conn.commit()
conn.close()
Может кто-нибудь указать, где я не прав?ТКС заранее