left outer join、right outer join 、inner outer join是sql里面用的很多的,所以需要深入理解它的用法
- a left b,如果a表的一条记录匹配中了b表的多条记录,那么最后会返回多条记录。
- a left b,如果a表的多条记录同时匹配中b表的一条记录,那么最后会返回a表中的多条记录,并且他们都是匹配中b表的那一条记录。
- a left b on condition,无论condition条件是什么,a表的记录都会存在,condition只是约束b表匹配a表的条件罢了,如果condition太严格,只会让b表一条记录都没匹配中,但是a表的记录一直都在。同时,condition可以是多个条件,条件之间用and连接。
- inner join的查询语句SELECT * FROM a INNER JOIN b ON a.aID =b.bID等同于以下SQL句: SELECT * FROM a,b WHERE a.aID = b.bID。注意不同的数据库可能有些差异。
- 在hive中,on后面的条件操作符好像只能为等号,如果想加不等于的条件,可以后面再跟where条件。