q789321 发表于 2018-10-17 11:35:08

SQL server关于多表查询语句

  T-SQL语句基础,有关内连接和外连接的解析:
  素材:
  

  表dbo.A

  表dbo.B
  
  一:内连接:
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from A,B where A.name=B.name

  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from A inner join B on A.name=B.name

  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from A join B on A.name=B.name

  总结:以上两种方法都是内连接得到的答案一样.但是语法有区别用颜色   表示
  
  二:外连接:
  左外连接:
  标准方法:
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from A left join B on A.name=B.name

  变形方法:
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from B right join A on A.name=B.name

  
  右外连接:
  标准方法:
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from A right join B on A.name=B.name

  变形方法:
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from B left join A on A.name=B.name

  通过以上说明,左外连接和右外连接是可以通过改变位置得到同一结果的.用颜色    表示
  
  全连接:
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from A full join B on A.name=B.name

  
  select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B from B full join A on A.name=B.name

  
  无论如何,细微的位置对结果都会有一定的影响,本方面的知识供各位参考!

页: [1]
查看完整版本: SQL server关于多表查询语句