外部连接时必需跟上左侧连接还是右侧连接。
Use pubsselect discounttype,discount,s.stor_name from discounts d
left outer join stores s on d.stor_id=s.stor_idselect discounttype,discount,s.stor_name from discounts d
right join stores s on d.stor_id=s.stor_id
完全连接是将join两侧的数据全部匹配,并返回所有记录。
Use pubsselect discounttype,discount,s.stor_name from discounts d
full join stores s on d.stor_id=s.stor_id
交叉连接不使用on运算符,而将join左侧的所有记录与另一侧的所有记录连接,返回的是join两侧表记录的笛卡尔积。(总数据条数为左侧表内数据条数乘以右侧表数据条数之积)
Use pubsselect discounttype,discount,s.stor_name from discounts d
cross join stores s
上边只是把定义和简单的例子列举,下边用一个通俗简单的例子说明join连接中两表或者两表以上的数据连接获取到的数据集的情况
准备工作,先建立三张数据表,TABLEA,TABLEB,TABLEC,TABLEA表中有B,C表中的ID代码如下
两表连接时
一、Inner join on 连接
代码:SELECT * FROM TABLEB B INNER JOIN TABLEA A ON B.ID=A.BID
结果:id name id A Bid Cid
1 B 1 A 1 1
分析:匹配后的结果只显示符合ON后条件的结果集,不符合则不显示
二、Outer join on (外连接)
1、左连接
代码:SELECT * FROM TABLEB B LEFT OUTER JOIN TABLEA A ON B.ID=A.BID
结果:
id name id A Bid Cid1 B 1 A 1 12 B NULL NULL NULL NULL3 B NULL NULL NULL NULL4 B NULL NULL NULL NULL5 B NULL NULL NULL NULL 分析:外左连接时左侧为需要显示全部信息的表,右侧把没有匹配ON条件的地方全部补为NULL
2、右连接
代码:(待续)