我创建了如下表格
create table student (id integer, firstname varchar(100), lastname varchar(100), time varchar(100));
insert into student (id, firstname, lastname, time) values (1, 'albert', 'einstein', 'today');
insert into student (id, firstname, lastname, time) values (2, 'isaac', 'newton', 'today');
insert into student (id, firstname, lastname, time) values (3, 'marie', 'curie', 'today');
insert into student (id, firstname, lastname, time) values (4, 'Aneesh', 'pn', 'yesterday');
insert into student (id, firstname, lastname, time) values (5, 'joe', 'curie', 'yesterday');
insert into student (id, firstname, lastname, time) values (6, 'Aneesh', 'hahha', 'yesterday');
insert into student (id, firstname, lastname, time) values (7, 'Aneesh', 'narayanan', 'today');
select * from student;
现在我想根据时间查询数据 查询将是 输入的是时间。获取与输入时间匹配的所有记录,然后获取其名字并返回与该名字匹配的所有记录。
假设我将时间指定为“昨天”,那么它会返回
id| firstname | lastname| time
-------------------------------
4 | Aneesh | pn | yesterday
5 | joe | curie | yesterday
6 | Aneesh | hahha | yesterday
7 | Aneesh | narayanan | today
我尝试了以下查询但没有成功。一些语法错误
select (
'Id',id,
'FirstName',firstname,
'LastName',lastname,
'Time',time
) as json
from
(
select firstname from student
where time= 'yesterday') as tt
where firstname = tt.firstname;
首先,在指定时间获取第一个firstname,然后将此数据集与您的表连接起来:
select s.*
from student s
inner join (
select firstname, time
from student
where time= 'yesterday'
order by id
limit 1
) as f on f.time = s.time or f.firstname = s.firstname