联合查询(并集)、交集查询及差集查询

DROP TABLE IF EXISTS top_rated_films;
CREATE TABLE top_rated_films(
	title VARCHAR NOT NULL,
	release_year SMALLINT
);

DROP TABLE IF EXISTS most_popular_films;
CREATE TABLE most_popular_films(
	title VARCHAR NOT NULL,
	release_year SMALLINT
);

INSERT INTO 
   top_rated_films(title,release_year)
VALUES
   ('The Shawshank Redemption',1994),
   ('The Godfather',1972),
   ('12 Angry Men',1957);

INSERT INTO 
   most_popular_films(title,release_year)
VALUES
   ('An American Pickle',2020),
   ('The Godfather',1972),
   ('Greyhound',2020);

联合查询用于将多个SELECT查询的结果组成一个结果集进行返回。

UNION 会将结果中,重复的行去除,如果要保留这些重复的行,可以使用 UNION ALL

联合查询必须满足以下条件:所有 SELECT 返回的字段的数据类型、顺序、个数要一致。

示例:

交集查询

返回多个结果的交集。

-- 返回两张表中均存在的数据
SELECT *
FROM most_popular_films 
INTERSECT
SELECT *
FROM top_rated_films;

差集查询

返回第一个表中,不存在于第二个表中的记录。

要查看完整内容,请先登录