废话不多说,直接上图秒懂。
t1表的结构与数据如下:
t2表的结构与数据如下:
inner join
select * from t1 inner join t2 on t1.id = t2.id;
inner join会把 公共部分的数据查询出来:
left join
select * from t1 left join t2 on t1.id = t2.id;
left join查询出来的 结果和前表记录数一样多,后表如果没有对应记录,则列为空:
right join
right join能转化为left join,例如:
select * from t1 right join t2 on t1.id = t2.id;
能转化为
select * from t2 left join t1 on t1.id = t2.id;
只是前表发生了变化而已。
大伙可结合自己的业务场景,选择正确的join。
最新评论
下载的激活包里面没有激活码呢
6666,找了半天终于找到可用的了,点赞
怎么保证这个签名不会乱呢,签名也是数据的一部分
public static void main(String[] args) { List list = Arrays.asList("A","B","C","D");
rangeClosed,是左闭右闭
守护线程 是低优先级线程。其唯一作用是为用户线程提供服务。
不简单,不简单
1.4 可以嘛?