MariaDB 自身交叉查询
INTERSECT运算符用于返回2个或更多表的交集。如果两个表中都存在一条记录,它将被包含在INTERSECT结果中。否则,将在INTERSECT结果中将其省略。
语法:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
INTERSECT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
图像表示
注意: MariaDB不支持INTERSECT运算符,但是通过使用IN运算符模拟INTERSECT查询,您可以看到相同的内容,如下所示:
使用INTERSECT运算符返回单个字段
以下是INTERSECT运算符的常规查询,但在MariaDB中不会被支持。
SELECT student_name
FROM Student
INTERSECT
SELECT student_name
FROM Students;
使用以下命令:
SELECT Students.student_name
FROM Students
WHERE Students.student_name IN (SELECT Student.student_name FROM Student);
输出:
它仅显示两个表"学生"和"学生"。
带有WHERE子句的INTERSECT运算符
以下是INTERSECT运算符的常规查询,但在MariaDB中不会被支持。
SELECT student_name
FROM Student
INTERSECT
SELECT student_name
FROM Students,
WHERE salary > 1500;
使用以下语法:
SELECT Students.student_name
FROM Students
WHERE Students.student_id < 10
AND Students.student_id IN
(SELECT Student.student_id
FROM Student
WHERE Student.salary > 1500);
输出:
注意: 您还可以对多个表达式使用INTERSECT运算符。