在做一个程序的时候,我们会很频繁的去接触数据库!当然,简单的小程序,我们只需要去增删查改一个表中的数据,但是在 做一些中型或大型的项目的时候!我们不免会接触到联合调用两个表中的数据!这样一来!联合查询就显得格外的重要了!下面,我就来简单的介绍一下!
联合查询呢,分为四种! 分别是 内联,全联,左连接和右连接!
内联呢,Inner join就是根据两个表中一个相同的字段去取他们共有的数据!当然,这个字段在其中一张表中是主键,在另一张表中则是外键!这样就可以根据这个相同的条件去取数据了!其实换种讲法,也就是两个圆的交集问题!那个字段是他们共有的!
全联, full outer join ,这个全联呢,其实就是两张表的全集!把两张表中的数据全都取出来!
左链接, left outer join, 左链接就是把左边的这张表中的数据和他与另一张表中共有的字段所对应的数据全都取出来!这就是所谓的左联接!
右链接。 Right outer join , y右链接就是把右边表中的所有数据他与另一张表中共有的字段所对应的数据全都显示出来!
下面我来举一个例子!
左联接:
select A.UserId,A.UserName,A.Error,B.Name,B.Sfzh,B.Tell,B.Address,B.Age,(case B.General when 1 then '男D' when 0 then '女?' end) from T_User A left outer join T_UserInfo B on A.UserId=B.UserId "
右链接:
select A.UserId,A.UserName,A.Error,B.Name,B.Sfzh,B.Tell,B.Address,B.Age,(case B.General when 1 then '男D' when 0 then '女?' end) from T_User A right outer join T_UserInfo B on A.UserId=B.UserId where "
内链接:
select A.UserId,A.UserName,A.Error,B.Name,B.Sfzh,B.Tell,B.Address,B.Age,(case B.General when 1 then '男D' when 0 then '女?' end) from T_User A inner join T_UserInfo B on A.UserId=B.UserId where "
全连接:
select A.UserId,A.UserName,A.Error,B.Name,B.Sfzh,B.Tell,B.Address,B.Age,(case B.General when 1 then '男D' when 0 then '女?' end) from T_User A full outer join T_UserInfo B on A.UserId=B.UserId where "
解释一下,A是表T_user的别名,他代表就是表T_user
B是表T_userinfo的别名,他代表就是表T_userinfo
当然,这两张表中所共有的数据就是 userid !
好了,我的介绍完了,希望你们能试一下!加深一下自己的理解!