Many to many relationships&Assignment
来源:互联网 发布:linux vi 命令模式 编辑:程序博客网 时间:2024/05/21 17:23
表与表之间多对多关联
import jsonimport sqlite3conn = sqlite3.connect('rosterdb.sqlite')cur = conn.cursor()# Do some setupcur.executescript('''DROP TABLE IF EXISTS User;DROP TABLE IF EXISTS Member;DROP TABLE IF EXISTS Course;CREATE TABLE User ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, name TEXT UNIQUE);CREATE TABLE Course ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, title TEXT UNIQUE);CREATE TABLE Member ( user_id INTEGER, course_id INTEGER, role INTEGER, PRIMARY KEY (user_id, course_id))''')fname = raw_input('Enter file name: ')if ( len(fname) < 1 ) : fname = 'roster_data.json'# [# [ "Charley", "si110", 1 ],# [ "Mea", "si110", 0 ],str_data = open(fname).read()json_data = json.loads(str_data)for entry in json_data: name = entry[0]; title = entry[1]; role=entry[2]; cur.execute('''INSERT OR IGNORE INTO User (name) VALUES ( ? )''', ( name, ) ) cur.execute('SELECT id FROM User WHERE name = ? ', (name, )) user_id = cur.fetchone()[0] cur.execute('''INSERT OR IGNORE INTO Course (title) VALUES ( ? )''', ( title, ) ) cur.execute('SELECT id FROM Course WHERE title = ? ', (title, )) course_id = cur.fetchone()[0] cur.execute('''INSERT OR REPLACE INTO Member (user_id, course_id,role) VALUES ( ?, ?, ? )''', ( user_id, course_id ,role) ) conn.commit()
要点其实是需要再建立一张表用来存入course和users的primary key。
最后在SQL中输入
SELECT hex(User.name || Course.title || Member.role ) AS X FROM User JOIN Member JOIN Course ON User.id = Member.user_id AND Member.course_id = Course.id ORDER BY X
0 0
- Many to many relationships&Assignment
- Mutable Access of To-Many Relationships
- djang Extra fields on many-to-many relationships
- How to define One-Many and One-One relationships
- Model One-to-Many Relationships with Embedded Documents
- Model One-to-Many Relationships with Document References
- Coursera课程Python for everyone:Quiz: Many-to-Many Relationships and Python
- many-to-many性能
- hibernate-----many-to-many
- Hibernate many to many
- hibernate many-to-many
- many to many
- Many-to-many Query
- Many-to-Many
- many-to-many
- Hibernate Many-to-Many
- Hibernate Many-To-Many Revisited
- hibernate many to many查询
- Oracle alert_sid.log属组变为root不影响数据库正常运行
- 跳转到系统设置
- stdio.h
- Html/JS实现页面的折叠
- java枚举解析
- Many to many relationships&Assignment
- JavaScript入门
- Mysql 实现 Rownum() 排序后根据条件获取名次
- 【记录】sqlite清空数据表并使id值从1开始(sqlite默认id从1开始)
- swift 基础学习一
- C++文件读写
- HDOJ(HDU) 2520 我是菜鸟,我怕谁(等差数列)
- Five-People:左右滚动的viewpager库说明
- 72. Edit Distance【H】【65】