MYSQL自连接查询
1.概念:左表和右表是同一个表,根据连接查询条件查询两个表中的数据.
说明:
(1)自连接查询必须对表起别名;
2) 自连接的使用方法和内连接,左连接,右连接完全相同,只不过连接的左表和右表是同一张表.
2.案例
CREATE TABLE sales
(
month INT NOT NULL, -- 月份
revenue DECIMAL(10, 2) -- 销售额
);
INSERT INTO sales
VALUES (1, 1000),
(2, 800),
(3, 1200),
(4, 2000),
(5, 1800),
(6, 5000),
(7, 3000),
(8, 2500),
(9, 1600),
(10, 2200),
(11, 900),
(12, 4600);
示例1:查询每个月的销售额和前一个月的销售额的差值
-- 查询结果字段:月份、当前月销售额、前一个月销售额,当前月销售额和前一个月销售额的差
SELECT
A.month,
A.revenue,
B.revenue,
A.revenue - B.revenue
FROM sales AS A
LEFT JOIN sales as B
ON A.month = B.month + 1;
示例2:查询截止到每个月的销售额。
-- 查询结果字段:月份,截止当前的累计销售额
SELECT
A.month,
sum(B.revenue)
FROM sales as A
JOIN sales as B
ON A.month >= B.month
GROUP BY A.month;