【发布时间】:2020-07-17 08:24:58
【问题描述】:
表格 (DB-Fiddle)
CREATE TABLE sales (
id int auto_increment primary key,
product VARCHAR(255),
sales_date DATE,
insert_time DATE
);
INSERT INTO sales
(product, sales_date, insert_time
)
VALUES
("Product A", "2020-04-15", "2020-03-05"),
("Product B", "2020-05-20", "2020-03-05"),
("Product C", "2020-02-11", "2020-03-05"),
("Product A", "2020-04-15", "2020-03-06"),
("Product B", "2020-05-20", "2020-03-06"),
("Product C", "2020-02-11", "2020-03-06"),
("Product A", "2020-04-15", "2020-03-07"),
("Product B", "2020-05-20", "2020-03-07"),
("Product C", "2020-02-11", "2020-03-07");
在上面的表格中,每天都会插入产品销售额并分配给insert_time。
现在我想根据insert_time 检查此查询结果中的产品:
SELECT
product,
sales_date
FROM sales
WHERE insert_time = "2020-03-05";
也出现在这个查询的结果中:
SELECT
product,
sales_date
FROM sales
WHERE insert_time = "2020-03-05"
AND sales_date BETWEEN insert_time AND DATE_ADD(insert_time, INTERVAL 3 MONTH)
最终的结果应该是这样的:
product sales_date Check
Product A 2020-04-15 O.K.
Product B 2020-05-20 O.K.
Product C 2020-02-11 Error (--> Because it only appears in the first query)
如何合并两个查询才能达到预期结果?
【问题讨论】:
-
试试
INTERSECT