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

例题:

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


一.题解

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')

猜你喜欢

转载自blog.csdn.net/xiaolute/article/details/89465115