📅  最后修改于: 2023-12-03 14:49:22.982000             🧑  作者: Mango
在大型数据库应用程序中,从多个表中获取数据是一项常见的任务。这通常涉及到使用 SQL JOIN 操作符来联接多个表。
SQL JOIN 操作符用于从多个表中获取数据。它将两个或多个表中的行连接在一起,以便可以同时检索这些表中的数据。
常见的 JOIN 操作符包括:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
其中,table1 和 table2 是要联接的表的名称,ON 后面指定连接两个表的条件。JOIN 操作符的类型取决于 JOIN 前面的关键字。
以下代码展示了如何使用 INNER JOIN 来从两个表中获取数据:
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE user
(user_id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
email TEXT NOT NULL)''')
c.execute('''CREATE TABLE order
(order_id INT PRIMARY KEY NOT NULL,
user_id INT NOT NULL,
item TEXT NOT NULL,
price FLOAT NOT NULL)''')
c.execute("INSERT INTO user VALUES (1, 'Alice', 'alice@example.com')")
c.execute("INSERT INTO user VALUES (2, 'Bob', 'bob@example.com')")
c.execute("INSERT INTO order VALUES (1, 1, 'Widget', 1.23)")
c.execute("INSERT INTO order VALUES (2, 2, 'Gadget', 4.56)")
c.execute("INSERT INTO order VALUES (3, 1, 'Thingamabob', 7.89)")
conn.commit()
c.execute('''SELECT user.name, order.item, order.price
FROM user
INNER JOIN order
ON user.user_id = order.user_id''')
for row in c.fetchall():
print(row)
输出结果:
('Alice', 'Widget', 1.23)
('Bob', 'Gadget', 4.56)
('Alice', 'Thingamabob', 7.89)
从多个表中获取数据是数据库编程中常见的任务。使用 JOIN 操作符可以轻松地联接多个表并同时检索数据。在编写 JOIN 查询时,请注意选择正确的 JOIN 操作符类型,以确保返回的结果正确无误。