【LeetCode】组合两个表(mysql)

发布时间:2024年01月10日

表:?Person

+-------------+---------+

|? ? ? 列名? ??|? ?类型? |

+-------------+---------+

| PersonId? |? ? ?int? ??|

| FirstName | varchar |

| LastName | varchar |

+-------------+---------+

personId 是该表的主键(具有唯一值的列)。 该表包含一些人的 ID 和他们的姓和名的信息。?

表:?Address

+-------------+---------+

|? ? ? ?列名? ?|? ?类型? |

+-------------+---------+

| AddressId |? ? int? ??|

| PersonId? |? ? int? ? ?|

|? ? City? ? ? ?|varchar |

|? ? ?State? ? |varchar |

+-------------+---------+

addressId 是该表的主键(具有唯一值的列)。 该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。

?

编写解决方案,报告?Person?表中每个人的姓、名、城市和州。如果?personId?的地址不在?Address?表中,则报告为?null?。

以?任意顺序?返回结果表。

结果格式如下所示。

输入:

Person表:

+--------------+-----------------+-----------------+

|? ? personId |? ?lastName? ?|? ?firstName? ?|

+--------------+-----------------+-----------------+

|? ? ? ? ?1? ? ? ? |? ? ? Wang? ? ? |? ? ? ?Allen? ? ? ?|

|? ? ? ? ?2? ? ? ? |? ? ? ?Alice? ? ? ?|? ? ? ?Bob? ? ? ? |

+---------------+-----------------+----------------+

Address表:

+---------------+----------------+------------------+------------+

|? ?addressId |? ? personId? ?|? ? ? ? city? ? ? ? ?|? ? state? ? |

+---------------+-----------------+------------------+-------------+

|? ? ? ? ?1? ? ? ? ?|? ? ? ? ?2? ? ? ? ? ?|New York City| New York |

|? ? ? ? ?2? ? ? ? ?|? ? ? ? ?3? ? ? ? ? ?| Leetcode? ? ? ?| California |

+----------------+-----------------+------------------+--------------+

输出:

+-------=----+--------------+---------------+----------+

| firstName | lastName |? ? ? ?city? ? ? ?|? ? state? |

+-------------+--------------+---------------+----------+

|? ? ? Allen? ? |? ? ?Wang? ?|? ? ? ?Null? ? ? ?|? ?Null? ? |

|? ? ? Bob? ? ?|? ? ? Alice? ? | New York City | New York |

+--------------+-------------+----------------+------------+

?

?答:

select? firstName ,lastName,city,state

from? Person

left join Address

on Person.personId = Address.PersonId

这段SQL代码是用来从person表中选择firstNamelastNamecitystate字段,并与Address表进行左连接(left join)。左连接会返回所有的person记录,即使在Address表中没有匹配的记录。?

具体方法参考:联表查询中的左联查询(left join )

https://blog.csdn.net/m0_67930426/article/details/134321937icon-default.png?t=N7T8https://blog.csdn.net/m0_67930426/article/details/134321937?

文章来源:https://blog.csdn.net/m0_67930426/article/details/135513551
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。