表的join操作:left、right、outer、inner

时间:2022-07-13 20:19:01

尽量不用where in …的句子,效率不高

首先join操作是为了扩展列的数目。

内连接

内连接只查询匹配的记录,匹配不上的记录无法查询。
select * from A inner join B on A.field1=B.field2 或
select * from A,B where A.field1=B.field2

外连接

select * from A left join B on A.field1=B.field2
连接的记录数与A表的记录数同 ,如果B中没有匹配的,就以null值填充。
A right join B 的连接的记录数与B表的记录数同
写成left join、right join默认是外连接,即left (outer) join…
注意:没有匹配用null填充时,排序时如果用到该字段会影响排序。
可以这样写:

SELECT (case when sum(b.CLICKS) is null then 0 else sum(b.CLICKS) end) count FROM 。。。。

ORDER BY count DESC