user表:
user_book表:
user表与user_book表的关系:一对多(通过user_book的userid外键关联)
select user.*,user_book.*
from user
left join user_book on user.id=user_book.userid;
查询结果:
user1对应了2条记录
select user.*,user_book.*
from user
left join user_book on user.id=user_book.userid
group by user.id
查询结果:
user1只有一条记录(第二条记录没有了)
用group by user.id的前提是在MySQL取消sql_mode=only_full_group_by的模式,否则sql会报错。
3.如果想查的不是第一条记录,而是最新的book记录(createtime最大),则:
select user.*,user_book.*
from user
left join (select max(createtime) maxCreatetime,userid from user_book group by userid) ub_temp on ub_temp.userid=user.id -- 取最新的记录
left join user_book on user_book.userid=ub_temp.userid and user_book.createtime=ub_temp.maxCreatetime
查询结果:
版权声明:本文为u013813491原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。