在 MySQL 中
UNION
操作符用于合并两个或多个 SELECT
语句的结果集,并去除重复的行。UNION
操作符可以将多个 SELECT
查询的结果合并成一个结果集,并且对结果进行排序。
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
在这个语法中,SELECT
查询必须具有相同数量的列,并且相应列的数据类型必须相匹配。UNION
操作符合并两个 SELECT
查询的结果,并去除重复的行。
例如,假设我们有两个数据表 table1
和 table2
,分别包含了相同结构的列 id
和 name
。我们可以使用 UNION
操作符将这两个表的数据合并,并去除重复的行:
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2;
在这个例子中,UNION
操作符将 table1
和 table2
中的数据合并,并去除重复的行。最终返回的结果集包含了所有不重复的 id
和 name
组合。
需要注意的是,UNION
操作符默认会去除重复的行。如果想要保留所有的行(包括重复的行),可以使用 UNION ALL
操作符。
在 Python 中
可以使用 mysql-connector-python
或 pymysql
等库连接到 MySQL 数据库,并执行相应的 SQL 查询操作,包括使用 UNION
操作符进行结果集的合并。
import mysql.connector
# 连接到 MySQL 数据库
conn = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="my_database" # 指定要连接的数据库
)# 创建游标对象
cursor = conn.cursor()# 执行 UNION 操作
union_query = """
SELECT id, name FROM table1
UNION
SELECT id, name FROM table2
"""
cursor.execute(union_query)# 获取查询结果
rows = cursor.fetchall()# 打印查询结果
for row in rows:
print(row)# 关闭游标和数据库连接
cursor.close()
conn.close()
首先导入 mysql.connector
模块,然后通过 mysql.connector.connect()
方法连接到 MySQL 数据库。接着,创建一个游标对象,该对象用于执行 SQL 查询。然后,执行一个带有 UNION
操作符的 SQL 查询,合并两个数据表的数据,并去除重复的行。最后,我们通过 fetchall()
方法获取查询结果,并打印每一行数据。最后,我们关闭游标和数据库连接。