我有两张表,
表一有字段
a_id,name
表二有字段
b_id,a_id,createtime
两个表的a_id是关联的,并且是一对多的关系。
请问怎么能通过1个sql
查询出 a_id,name,b_id
其中b_id是createtime最小的行对应的b_id.
我有两张表,
表一有字段
a_id,name
表二有字段
b_id,a_id,createtime
两个表的a_id是关联的,并且是一对多的关系。
请问怎么能通过1个sql
查询出 a_id,name,b_id
其中b_id是createtime最小的行对应的b_id.
select tb1.a_id,tb2.b_id,name from tb1
left join (select a_id,min(createtime) as min_time from tb2 group by a_id) t on t.a_id = tb1.a_id
left join tb2 on tb2.a_id = tb1.a_id and tb2.createtime = t.min_time
你看这样可行吗?
create table a (a_id int,name varchar(15));
create table b (b_id int ,a_id int,create_time datetime);
insert into a set a_id=1,name='1';
insert into a set a_id=2,name='2';
insert into b set b_id=1,a_id=1,create_time=now();
insert into b set b_id=2,a_id=1,create_time=now();
insert into b set b_id=3,a_id=1,create_time=now();
insert into b set b_id=4,a_id=2,create_time=now();
insert into b set b_id=5,a_id=2,create_time=now();
select a.a_id,name,b_id,create_time from a,(select * from b group by a_id order by create_time asc ) c where a.a_id=c.a_id ;
+------+------+------+---------------------+
| a_id | name | b_id | create_time |
+------+------+------+---------------------+
| 1 | 1 | 1 | 2016-11-24 18:34:56 |
| 2 | 2 | 4 | 2016-11-24 18:35:53 |
+------+------+------+---------------------+
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
以下



SQL
ok, 直接上图附执行SQL