python数据库查询

python数据库查询,python,database,Python,Database,我最近开始了一个python任务,它使用chinook数据库。 我一直坚持的任务是找出哪张专辑最受欢迎。然后,我需要编写并打印前10名的结果,包括专辑名称、艺术家以及专辑中播放曲目的次数。 另外,我需要将所有这些都放在一个查询中。 我真的不知道怎么做,stackOverflow是我最后的选择。 以下是我可怕的尝试: #connection import sqlite3 try: db = sqlite3.connect('C:/Users/chinook.db') print('

我最近开始了一个python任务,它使用chinook数据库。 我一直坚持的任务是找出哪张专辑最受欢迎。然后,我需要编写并打印前10名的结果,包括专辑名称、艺术家以及专辑中播放曲目的次数。 另外,我需要将所有这些都放在一个查询中。 我真的不知道怎么做,stackOverflow是我最后的选择。 以下是我可怕的尝试:

#connection
import sqlite3
try:
    db = sqlite3.connect('C:/Users/chinook.db')
    print('connection succesful')
except:
    print('connection error')

cur = db.cursor()

query3 = '''
SELECT  t.Name, t.trackId, t.albumId
FROM tracks as t
INNER JOIN invoice_items as i
ON t.trackId = i.trackId
INNER JOIN invoices AS ii
ON i.invoiceId = ii.invoiceId
ORDER BY ii.invoiceId DESC
LIMIT 10
;'''

我正在使用SQlite访问我的数据库 以及导入模块sqlite3
有人能帮忙吗?我对数据库很在行…

假设你想要的是专辑总销量,而不是收听次数,我想这个查询就可以了

select album.AlbumId, album.Title, artist.Name, count(album.AlbumId) as AlbumBuyTotal from album
inner join track on album.AlbumId = track.AlbumId
inner join invoiceline on track.TrackId = invoiceline.TrackId
inner join artist on album.ArtistId = artist.ArtistId
group by album.AlbumId
order by AlbumBuyTotal desc
limit 10;
请看一下该语句,因为这是将购买的唱片总数划分为相应行的关键


同样的概念也适用于“倾听的次数”,但我在数据库中找不到类似的信息。

您的问题是关于SQL以及如何查询SQL。因此,您需要提供人们可以帮助您的表模式。如果有帮助,我认为这可能是数据库。你的问题解决了吗?你是说哪张专辑购买量最多?我想这就是你的意思,因为你加入了发票。查看chinook的当前模式,我看不到任何与“收听次数”相关的内容。谢谢你,你是个天才!