表Persons:
表Orders:
1.用where 语句将两张表进行关联查询
SELECT * FROM dbo.Persons a,dbo.Orders b WHERE a.Id=b.Pid
where子句中连接两张表,在数据库语言中,被称为隐性连接,结果和INNER JOIN一样。
Note:where 连接叫隐性连接,而用join的连接,叫显性连接,sqlserver后期版本基本都采用显性连接。
2.inner join (内连接),两张表中都有数据才会匹配
SELECT * FROM dbo.Persons a INNER JOIN dbo.Orders b ON a.Id=b.Pid
3.left join(左连接),理解为“有左显示”,比如on a.field=b.field,则显示a表中存在的全部数据及a,b中都有的数据,A表中有,B表中没有的数据以NULL显示:
SELECT * FROM dbo.Persons a LEFT JOIN dbo.Orders b ON a.Id=b.Pid
4.right join(右连接) ,理解为“有右显示”,比如on a.field=b.field,则显示B表中存在的全部数据及a,b中都有的数据,B表中有、A表中没有的数据以NULL显示:
SELECT * FROM dbo.Persons a RIGHT JOIN dbo.Orders b ON a.Id=b.Pid
5.full join:全连接,两张表中所有数据都显示:
SELECT * FROM dbo.Persons a FULL JOIN dbo.Orders b ON a.Id=b.Pid