📅  最后修改于: 2023-12-03 15:02:51.993000             🧑  作者: Mango
相交运算符用于将两个SELECT语句的结果合并为一组结果,并返回这两个结果集的共同部分。在MariaDB中,相交运算符使用INTERSECT
关键字来表示。
SELECT column1[, column2, ...]
FROM table1
[WHERE condition]
INTERSECT
SELECT column1[, column2, ...]
FROM table2
[WHERE condition];
column1, column2, …
:要返回的列名,用逗号分隔。table1
:第一个SELECT语句查询的表。condition
:可选项,用于过滤查询的结果。table2
:第二个SELECT语句查询的表。为了演示INTERSECT运算符,我们使用以下两个表:
CREATE TABLE `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`gender` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `table1` (`name`, `age`) VALUES
('John', 25),
('Mary', 30),
('Peter', 35),
('David', 40);
INSERT INTO `table2` (`name`, `gender`) VALUES
('John', 'M'),
('Peter', 'M'),
('Alice', 'F');
SELECT `name` FROM `table1`
INTERSECT
SELECT `name` FROM `table2`;
输出结果为:
+------+
| name |
+------+
| John |
| Peter |
+------+
SELECT `name` FROM `table1`
WHERE `age` < 30
INTERSECT
SELECT `name` FROM `table2`
WHERE `gender` = 'F';
输出结果为空。