Написано: 26.03.2023

175. Объединить две таблицы (Combine Two Tables)

easy

SQL schema

Table: Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| personId    | int     |
| lastName    | varchar |
| firstName   | varchar |
+-------------+---------+
personId is the primary key column for this table.
This table contains information about the ID of some persons and their first and last names.

Table: Address

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| addressId   | int     |
| personId    | int     |
| city        | varchar |
| state       | varchar |
+-------------+---------+
addressId is the primary key column for this table.
Each row of this table contains information about the city and state of one person with ID = PersonId.

Задание.

Напишите SQL-запрос, чтобы сообщить имя, фамилию, город и штат каждого пользователя в таблице Person. Если адрес идентификатора пользователя отсутствует в таблице адресов, сообщите вместо него значение null.

Верните таблицу результатов в любом порядке.

Формат результата запроса приведен в следующем примере.

Пример 1.

Входные данные:

Person table:
+----------+----------+-----------+
| personId | lastName | firstName |
+----------+----------+-----------+
| 1        | Wang     | Allen     |
| 2        | Alice    | Bob       |
+----------+----------+-----------+
Address table:
+-----------+----------+---------------+------------+
| 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 |
+-----------+----------+---------------+----------+

Пояснение: В таблице адресов нет адреса для PersonID = 1, поэтому мы возвращаем null в их городе и штате. идентификатор адреса = 1 содержит информацию об адресе пользователя Id = 2.

Решение.

/* Write your PL/SQL query statement below */
SELECT Person.firstName, Person.lastName, Address.city, Address.state
FROM Person LEFT JOIN Address
ON Person.personId = Address.personId