域名 AXUM.RS 将于 2025 年 10 月到期。我们无意再对其进行续费,如果你有意接续这个域名,请与我们取得联系。
  • AXUM.RS 现仅需人民币 3000 元(大写:叁仟元整。接受适度议价
  • 按照行业规则,AXUM.RS 到期后,大概率会进入长时间的赎回期,该期间内,如果你想拥有该域名,将要付出高额的费用
  • 我们已启用 AXUM.EU.ORG 域名,并将持续运营
  • 仅接受微信或支付宝交易
如果你对 AXUM.RS 有兴趣,请和我们进行联系:

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

本章将讨论 UNION:联合(并集)查询、INTERSECT :交集查询和EXCEPT:差集查询。

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 * FROM top_rated_films
UNION
SELECT * FROM most_popular_films;
/*
结果只有5行,因为UNION 删除了1个重复行:title 为 'The Godfather'的行
*/

-- 简单示例:组合两张表的数据,并保留重复行
SELECT * FROM top_rated_films
UNION ALL
SELECT * FROM most_popular_films;

-- 与 ORDER BY 配合
SELECT * FROM top_rated_films
UNION ALL
SELECT * FROM most_popular_films
ORDER BY title;

返回多个结果的交集。

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

差集查询

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

SELECT * FROM top_rated_films
EXCEPT 
SELECT * FROM most_popular_films;
要查看完整内容,请先登录