不能通过sqlite3在python中执行SQL查询来查找唯一数字

pjngdqdw  于 2022-11-14  发布在  SQLite
关注(0)|答案(2)|浏览(161)

我有一个数据库。这些数据库有两个表。
一张table是music
名称|日期|版本|Song_ID|Singer_ID
-|
LA|01.05.2009|1|1|1
秒|13.07.2009|1|2|2
墨西哥|13.07.2009|1|3|1
出发|13.09.2009|1|4|3
Hello|18.09.2009|1|5|(4,5)
不要放弃|12.02.2010|2|6|(5,6)
ZIC Zac|2010年3月18日|2|7|7
Blablabla|14.04.2010|2|8|2
哇啦啦|14.05.2011|3|9|4
食物优先|14.05.2011|3|10|5
|La Vie Est.17.06.2011|3|11|8
Jajajajaja|13.07.2011|3|12|9
和另一个名为singer的表
Singer|国籍|Singer_ID
-|-|
JT Watson|美国|1
Rafinha|巴西|2
Juan Casa|西班牙|3
Kidi|美国|4
Dede|美国|5
Briana|美国|6
Jay Ado|英国|7
Dani|澳大利亚|8
Mike Rich|美国|9
现在我想知道有多少首歌。我给了那个代码,但上面写着无效的系统税??

SELECT DISTINCT Song_ID FROM music

无效语法接近DISTINCT
我创建了这样的数据库,也许这就是它出错的原因:

import sqlite3

conn = sqlite3.connect('musicten.db')  
c = conn.cursor()

c.execute('''
          CREATE TABLE IF NOT EXISTS singer
          ([Singer_ID] INTEGER PRIMARY KEY, [Singer] TEXT, [nationality] TEXT)
          ''')
          
c.execute('''
          CREATE TABLE IF NOT EXISTS music
          ([SONG_ID] INTEGER PRIMARY KEY, [SINGER_ID] INTEGER SECONDARY KEY, [name] TEXT, [Date] DATE, [EDITION] INTEGER)
          ''')
                     
conn.commit()



import sqlite3

conn = sqlite3.connect('musicten.db') 
c = conn.cursor()
                   
c.execute('''
          INSERT INTO singer (Singer_ID, Singer,nationality)

                VALUES
                (1,'JT Watson',' USA'),
                (2,'Rafinha','Brazil'),
                (3,'Juan Casa','Spain'),
                (4,'Kidi','USA'),
                (5,'Dede','USA')
          ''')

c.execute('''
          INSERT INTO music (Song_ID,Singer_ID, name, Date,Edition)

                VALUES
                (1,1,'LA',01/05/2009,1),
                (2,2,'Second',13/07/2009,1),
                (3,1,'Mexico',13/07/2009,1),
                (4,3,'Let"s go',13/09/2009,1),
                (5,(4,5),'Hello',18/09/2009,1)
          ''')

但我不这么认为,因为这很管用。我不会做SQL代码

atmip9wb

atmip9wb1#

是否要在此处执行计数查询:

SELECT COUNT(DISTINCT Song_ID) FROM music;

假设每个Song_IDmusic表中都是唯一的,您甚至不需要不同的计数;常规计数也可以:

SELECT COUNT(Song_ID) FROM music;
fsi0uk1n

fsi0uk1n2#

我也会尝试从音乐中选择不同的计数(Song_ID);

相关问题