LeetCode - Combine Two Tables

      Description:Write a SQL query for a report that provides the following information for  each person in the Person table, regardless if there is an address for each  of those people:     

    第一次刷SQL题目感觉还是不错的。这个题目大概是说把第一张表和第二张表连接起来。而且第二张表中的Person的Address中的属性可能为NULL。这明显就是个左外链接。

   

# Write your MySQL query statement below
SELECT FirstName ,LastName, City, State 
FROM Person LEFT OUTER JOIN Address ON (Person.PersonId=Address.PersonId);

 

 这里需要说一下左外链接和右外链接的区别。

      左外链接是列出左边关系的所有元组,右外链接是列出右边关系的所有元组。下面举个例子。
      PersonName(id,name)
      数据:(1,张三)(2,李四)(3,王五)
      PersonPosition(id,position)
      数据:(1,学生)(2,老师)(4,校长)

      左连接的结果:

      select PersonName.*,PersonPosition.* from PersonName left join PersonPosition on PersonName.id=PersonPosition.id;
      1 张三 1    学生
      2 李四 2    老师
      3 王五 NULL NULL

      右外链接的结果:

      select PersonName.*,PersonPosition.* from PersonName right join PersonPosition on PersonName.id=PersonPosition.id;

      1    张三 1 学生
      2    李四 2 老师
      NULL NULL 4 校长

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值