簡體   English   中英

python 腳本中的 SQL 未返回所有值

[英]SQL in python script not returning all values

我正在嘗試使用 sql 中的 python 運行執行語句,以返回與一個值匹配的所有 id,在本例中為 x。 有多個項目應該與我試圖通過的變量(x)匹配,但是當我運行這一行時,我只在列表中得到一個項目,並且 rest 被拋在后面。 當我在 sqlite 瀏覽器中執行該行時,它給了我一個包含我想要的所有匹配數據的表格,但由於某種原因,這並沒有將其全部傳遞到列表中。

cur.execute('SELECT movie_id FROM MG WHERE genre_id = ?', (x, ))
    for x in cur:
        midg.append(y[0]) 

到目前為止,這是我的全部代碼:

    gnames = list()
cur.execute('SELECT genre_name FROM Genre')
for row in cur:
    gnames.append(row[0])
print(gnames)
gid = list()
midg = list()
grating = list()
grate = dict()
for namew in gnames:
    gid.clear()
    grating.clear()
    midg.clear()
    cur.execute('SELECT genre_id FROM Genre WHERE genre_name = ?', (namew, ))
    x = cur.fetchone()[0]
    cur.execute('SELECT movie_id FROM MG WHERE genre_id = ?', (x, ))
    for x in cur:
        midg.append(y[0])
        for z in midg:
            cur.execute('SELECT movie_rating FROM Movie WHERE movie_id = ?', (z, ))
            for row in cur:
                grating.append(row[0])
                gaverage = sum(grating)/len(grating)
                grate[namew] = gaverage

試試看。

#Install package
#pip install pyodbc
import pyodbc

server = 'server'
database = 'database'
username = 'username'
password = 'password'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()

cursor.execute("SELECT * from INFORMATION_SCHEMA.TABLES")

row = cursor.fetchone()
while row:

    #TABLE_CATALOG
    print(row[0])

    print()

    #TABLE_SCHEMA
    print(row[1])

    print()

    #TABLE_NAME
    print(row[2])

    print()

    # TABLE_TYPE
    print(row[3])

    print()

    print('all columns')
    print(str(row[0]), "-",str(row[1]), "-",str(row[2]), "-",str(row[3]))

    row = cursor.fetchone()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM