diff --git a/notes/Leetcode-Database 题解.md b/notes/Leetcode-Database 题解.md new file mode 100644 index 00000000..9d5e5c0c --- /dev/null +++ b/notes/Leetcode-Database 题解.md @@ -0,0 +1,67 @@ + +* [175. Combine Two Tables](#175-combine-two-tables) +* [未完待续...](#未完待续) + + + +# 175. Combine Two Tables + +https://leetcode.com/problems/combine-two-tables/description/ + +## Describe + +Table: Person + +```html ++-------------+---------+ +| Column Name | Type | ++-------------+---------+ +| PersonId | int | +| FirstName | varchar | +| LastName | varchar | ++-------------+---------+ +PersonId is the primary key column for this table. +``` + +Table: Address + +```html ++-------------+---------+ +| Column Name | Type | ++-------------+---------+ +| AddressId | int | +| PersonId | int | +| City | varchar | +| State | varchar | ++-------------+---------+ +AddressId is the primary key column for this table. +``` + +取出 FirstName, LastName, City, State 数据,而不管一个用户有没有填地址信息。 + +## SQL Schema + +```sql +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' ); +``` + +## Solution + +使用左外连接。 + +```sql +SELECT FirstName, LastName, City, State +FROM Person AS p LEFT JOIN address AS a +ON p.PersonId = a.PersonId; +``` + +# 未完待续...