`

sql连接查询

    博客分类:
  • sql
 
阅读更多

sql连接查询的连接查询分为交叉连接、内连接、外连接。

以下面两张表为例演示连接查询。

a表

b表

 

 

  • 外连接

分为左连接、右连接、完全外连接

 

左连接:left join 或left outer join

SELECT * FROM a LEFT OUTER JOIN b ON a.aid=b.bid

返回结果

返回a表所有行,根据on的条件返回b表,如果没有匹配,b表返回null

 

右连接:right join 或right outer join

SELECT * FROM a RIGHT OUTER JOIN b ON a.aid=b.bid

返回结果

返回b表所有行,根据on的条件返回a表,如果没有匹配,a表返回null

 

完全外连接:full join 或full outer join

SELECT * FROM a FULL JOIN b ON a.aid=b.bid

返回结果

返回a、b表的所有行,等价于

SELECT * FROM a LEFT JOIN b ON a.aid=b.bid
UNION 
SELECT * FROM a RIGHT JOIN b ON a.aid=b.bid

 

  • 内连接join或inner join
SELECT * FROM a INNER JOIN b ON a.aid=b.bid

返回结果

返回符合条件的a、b表所有行,没有null情况

等价于

SELECT * FROM a,b WHERE a.aid=b.bid

SELECT * FROM a CROSS JOIN b WHERE a.aid=b.bid

 

  • 交叉连接cross join

返回a表和b表的笛卡尔积

SELECT * FROM a CROSS JOIN b

返回结果

等价于

SELECT * FROM a,b

 

  • 大小: 5.8 KB
  • 大小: 5.7 KB
  • 大小: 10 KB
  • 大小: 9.8 KB
  • 大小: 14 KB
  • 大小: 7.8 KB
  • 大小: 17.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics