组合两个表
SQL架构
表1: Person
±------------±--------+
| 列名         | 类型     |
±------------±--------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
±------------±--------+
PersonId 是上表主键
表2: Address
±------------±--------+
| 列名         | 类型    |
±------------±--------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
±------------±--------+
AddressId 是上表主键
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
解题思路:
数据表的连接有:
1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现
2、外连接: 包括
(1)左外连接(左边的表不加限制)
(2)右外连接(右边的表不加限制)
(3)全外连接(左右两表都不加限制)
3、自连接(连接发生在一张基表内)
总之:
左连接显示左边全部的和右边与左边相同的
右连接显示右边全部的和左边与右边相同的
内连接是只显示满足条件的!
即"(+)"所在位置的另一侧为连接的方向,右连接说明等号右侧的所有
记录均会被显示,无论其在左侧是否得到匹配。即是右连接是以右边这个表为基准,左表不足的地方用NULL填充,反之亦然。
答案:
select A.FirstName,A.LastName,B.City,B.State
FROM Person A left join Address B
on A.PersonId=B.PersonId
 
                   
                   
                   
                   
                             本文介绍如何使用SQL左连接来组合Person表和Address表,确保即使某人的地址信息缺失也能获取到该人的姓名信息。
本文介绍如何使用SQL左连接来组合Person表和Address表,确保即使某人的地址信息缺失也能获取到该人的姓名信息。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   3105
					3105
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            