数据库SQL表连接查询

白癜风微信群 http://www.cgia.cn/news/chuangyi/1647706.html

表连接通过表之间关联的列,将多个表之间的行组合起来。

innerjoin:内连接返回两张表中匹配的记录,该操作将第一张表的每一行与第二张表的每一行进行比较,查找满足连接的所有行。

orders订单表

customers客户信息表

查询所有客户的订单信息(不会显示没有订单的客户信息)

selecto.orderid,c.name,o.orderamountfromordersoinnerjoincustomerscono.customerid=c.customerid;

leftouterjoin:左连接返回左边表的全部记录和右边表中匹配的记录,如果没有匹配返回null值

查询所有的订单信息

selecto.orderid,c.name,o.orderamountfromordersoleftjoincustomerscono.customerid=c.customer

rightouterjoin:右连接返回右边表的全部记录和左边表中的匹配的记录,如果不匹配返回null值

查询所有客户订单信息(客户没有订单,返回null)

selecto.orderid,c.name,o.orderamountfromordersorightjoincustomerscono.customerid=c.custom

fullouterjoin:全连接返回左表或右表的所有匹配记录,如果不匹配返回null值

selecto.orderid,c.name,o.orderamountfromordersofullouterjoincustomerscono.customerid=c.customer

selfjoin:与自身表进行连接,在表内进行比较操作时比较常用

employees表中查询每个员工领导名字

SELECTa.NameASEmployee,b.NameASManagerFROMEMPLOYEESa,EMPLOYEESbWHEREa.ManagerID=b.EmployeeID;

crossjoin:笛卡尔集,将第一张表的每一行与第二个表的每一行合并,不需要任何连接条件,谨慎使用,非常消耗资源。

SELECTa.NameASEmployee,b.NameASManagerFROMEMPLOYEESa,EMPLOYEESb;


转载请注明:http://www.xcqg58.com/pxxx/pxxx/26847920.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了