mysql-为什么第一次查询结果为空,但第二次查询有数据
发布时间:2022-06-03 19:46:31 643
相关标签: # 数据库
MYSQL 5.7,相同的SQL,在查询表数据没有变化的情况下,第一次查询为空,但第二次查询有数据
没有HAVING rank=2, 情况就不会如此
select * from
(select
t1.company_name,
t1.acceptance_date,
t1.project id,
rank
from
table1 t1
left join
(SELECT
id,
company_name,
acceptance_date,
project_id,
ct,
if( @p=a.company_name,@r :=@r +a.ct,@r:=a.ct) as rank,
@p:=a.company_name from
(SELECT
id,
company_name,
acceptance_date,
project id,
1 AS ct
FROM table1
WHERE company_name is not null
AND IS_DELETED = 0
order by company_name, acceptance_date
)as a
)t2
on t1.id=t2.id)c
HAVING rank=2
CREATE TABLE table1(
id INT,
project_id INT,
company_name VARCHAR(100) NOT NULL,
acceptance_date DATE,
is_deleted INT
PRIMARY KEY (id )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (1,1, "company1","2020/12/31",0);
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (2,2, "company1","2021/12/31",0);
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (3,3, "company1","2022/12/31",0);
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (4,4, "company2","2021/1/1",0);
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (5,5, "company3","2020/2/3",0);
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (6,6, "company4","2020/12/3",0);
insert into table1(id,project_id,company_name,acceptance_date,is_deleted) value (7,7, "company5","2020/10/3",0);
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报