(04)joins-1th

参考资料:http://www.w3schools.com/sql/sql_join.asp
参考资料:http://www.powerxing.com/sql-join/

我们切换到新的分支进行开发

git checkout -b joins-1th

数据表界面

(04)joins-1th_第1张图片
(04)joins-1th_第2张图片

right_join

(04)joins-1th_第3张图片
(04)joins-1th_第4张图片

使用right_join的话,我们可以看到把右边所有6条微博都取出来了。而用户则是取出微博对应的用户,所以赵六没有在结果页面。

用户right join微博,等价于微博left join用户,都是一样的,如下结果跟上例保持一致

(04)joins-1th_第5张图片

outer join

  • 其实我们用过很多次了,只不过outer关键字在一般情况下都可以忽略不写,left join就是left outer join,right join 就是right outer join
(04)joins-1th_第6张图片
(04)joins-1th_第7张图片
(04)joins-1th_第8张图片

如上,我们可以看到left_outer_join和right_outer_join与原来不写出outer的结果是一样的;outer关键字可写可不写。

full join与full outer join

(04)joins-1th_第9张图片

rails还没见过需要full join的场景,这个以后碰到了再写

join

使用join的话,则是用户和微博有对应关系才放入结果集合。所以赵六没有对应的微博就没有出现在结果集合,id为5的微博没有对应的用户也没有出现在结果集。


(04)joins-1th_第10张图片

因为join的原理是存在对应关系的才显示在结果集合中,所以用户去joins微博跟微博去joins用户都是一样的。

inner join

inner join的inner关键字在一般情况下是可以忽略的,所以inner join就是join,如下结果跟join的结果也是一样的

(04)joins-1th_第11张图片

提交到git仓库

进入项目根目录

.../active_record_second#  git add .
git commit -m "joins-1th"
git push -u https://github.com/xiaohuacc/active_record_second.git joins-1th

合并到主分支

git checkout master
git merge joins-1th

你可能感兴趣的:((04)joins-1th)