学习数据库,实现组合两个表

例题:

在这里插入图片描述
在这里插入图片描述


一.题解

1.
select FirstName,LastName,City,State from Person left join 
Address on Person.PersonId = Address.PersonId
2.
SELECT Person.FirstName, Person.LastName,Address.City,Address.State 
FROM Person LEFT JOIN Address ON Person.PersonId=Address.PersonId

注:

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。


二.运用到的知识点:

**SQL LEFT JOIN 关键字

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。**


三.表的架构

#架构
Create table Person (PersonId int, FirstName varchar(255),
LastName varchar(255))Create table Address (AddressId int,
PersonId int, City varchar(255), State varchar(255))Truncate table Person

insert into Person (PersonId, LastName, FirstName) values ('1', 'Wang', 'Allen')
Truncate table Address

insert into Address (AddressId, PersonId, City, State) values ('1', '2',
 'New York City', 'New York')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值