数据源
用户表:

客户表:

用户客户关联表

1、INNER JOIN使用示例
SELECT per.Name 用户, cur.Name 客户
FROM Test.dbo.[User] per
INNER JOIN Test.dbo.UserCustomerRelation rela ON per.Id = rela.UserId
INNER JOIN Test.dbo.Customer cur ON cur.Id = rela.CustomerId结果:
说明:INNER JOIN 链接方式需要左右两边同时满足条件才输出结果
2、LEFT JOIN使用示例
SELECT per.Name 用户, cur.Name 客户
FROM Test.dbo.[User] per
LEFT JOIN Test.dbo.UserCustomerRelation rela ON per.Id = rela.UserId
LEFT JOIN Test.dbo.Customer cur ON cur.Id = rela.CustomerId结果:
说明:LEFT JOIN链接方式允许右边为NULL,即右边表没有匹配到关联结果的话使用NULL来代替
3、RIGHT JOIN使用示例
SELECT per.Name 用户, cur.Name 客户
FROM Test.dbo.[User] per
RIGHT JOIN Test.dbo.UserCustomerRelation rela ON per.Id = rela.UserId
RIGHT JOIN Test.dbo.Customer cur ON cur.Id = rela.CustomerId结果:
说明:RIGHT JOIN和LEFT JOIN一样可以允许关联不存在输出,它允许左边表不存在,使用NULL代替
4、FULL JOIN使用示例
SELECT per.Name 用户, cur.Name 客户
FROM Test.dbo.[User] per
FULL JOIN Test.dbo.UserCustomerRelation rela ON per.Id = rela.UserId
FULL JOIN Test.dbo.Customer cur ON cur.Id = rela.CustomerId结果:
说明:FULL JOIN是RIGHT JOIN和LEFT JOIN的结合体,它只要左右两边任意一张表存在结果就可以输出,没有匹配到的用NULL来代替
备注:有些写法用FULL OUTER JOIN,不使用OUTER关键字只是简写,不会影响查询的结果。