Mysql 简明教程
MySQL - Intersect Operator
在数学集合论中,两个集合的交集是一个只包含同时属于两个集合的那些元素的集合。换句话说,两个集合的交集是一个包含存在于两个集合中的元素的集合。
如果使用 INTERSECT 运算符对两个集合执行交集运算,它将显示两个表中的公共行。此运算符将从最终结果集中删除重复的行。
MySQL INTERSECT Operator
在 MySQL 中,INTERSECT 运算符用于返回两个 SELECT(表)语句结果集之间的相同/公共记录。
但是,INTERSECT 运算符仅适用于两个 SELECT 语句具有相同数量的具有相同数据类型和名称的列时。
Syntax
下面是 MySQL 中 INTERSECT 运算符的语法 −
SELECT column1, column2,..., columnN
FROM table1, table2,..., tableN
INTERSECT
SELECT column1, column2,..., columnN
FROM table1, table2,..., tableN
Example
首先,让我们使用以下查询创建一个名为 STUDENTS 的数据表−
CREATE TABLE STUDENTS(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
HOBBY VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
PRIMARY KEY(ID)
);
这里,我们使用 INSERT 语句向表中插入一些值。
INSERT INTO STUDENTS VALUES
(1, 'Vijay', 'Cricket', 18),
(2, 'Varun', 'Football', 26),
(3, 'Surya', 'Cricket', 19),
(4, 'Karthik', 'Cricket', 25),
(5, 'Sunny', 'Football', 26),
(6, 'Dev', 'Cricket', 23);
该表创建如下 −
现在,让我们使用以下查询创建一个名为 ASSOCIATES 的另一个表 −
CREATE TABLE ASSOCIATES(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
SUBJECT VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
HOBBY VARCHAR(20) NOT NULL,
PRIMARY KEY(ID)
);
这里,我们使用 INSERT 语句向表中插入一些值 −
INSERT INTO ASSOCIATES VALUES
(1, 'Naina', 'Maths', 24, 'Cricket'),
(2, 'Varun', 'Physics', 26, 'Football'),
(3, 'Dev', 'Maths', 23, 'Cricket'),
(4, 'Priya', 'Physics', 25, 'Cricket'),
(5, 'Aditya', 'Chemistry', 21, 'Cricket'),
(6, 'Kalyan', 'Maths', 30, 'Football');
该表创建如下 −
现在,我们使用以下查询返回两个表中的公共记录 −
SELECT NAME, AGE, HOBBY FROM STUDENTS
INTERSECT
SELECT NAME, AGE, HOBBY FROM ASSOCIATES;
INTERSECT with BETWEEN Operator
MySQL INTERSECT 运算符可以与 BETWEEN 运算符一起使用,以查找存在于指定范围内的行。
INTERSECT with IN Operator
在 MySQL 中,我们可以将 INTERSECT 运算符与 IN 运算符一起使用,以查找具有指定值的公共行。IN 运算符用于根据指定值列表过滤结果集。
INTERSECT with LIKE Operator
LIKE 运算符用于对字符串值执行模式匹配。
我们可以在 MySQL 中将 LIKE 运算符与 INTERSECT 运算符一起使用,以查找与指定模式匹配的公共行。