Joining two tables
To use data from both tables at once, you join them. An INNER JOIN pairs up rows that match on a key — here, the order's customer_id with the customer's id:
When a column name could come from either table, write table.column so it is clear.
Объединение двух таблиц
Чтобы использовать данные из обеих таблиц одновременно, их необходимо объединить. INNER JOIN сопоставляет строки, которые совпадают по ключу — здесь, customer_id заказа с id клиента:
SELECT customer.name, orders.total
FROM customer
INNER JOIN orders ON customer.id = orders.customer_id;
Когда имя столбца может относиться к любой из таблиц, пишите table.column, чтобы было ясно.
Only matching rows survive
An INNER JOIN keeps a row only when the ON condition finds a match in the other table.
In our shop, Ben and Dan have no orders, so they do not appear in the join — there is nothing to pair them with. Ada and Cara, who do have orders, appear once for each of their orders.
Выживают только совпадающие строки
INNER JOIN сохраняет строку только тогда, когда условие ON находит совпадение в другой таблице.
В нашем магазине у Бена и Дэна нет заказов, поэтому они не появляются в результате объединения — не с чем их сопоставить. Ада и Кара, у которых есть заказы, появляются по одному разу для каждого из своих заказов.
Common mistakes
- Match on the key with
ON; a missingONpairs every row with every row. - INNER JOIN drops rows with no match on the other side.
Частые ошибки
- Соединение по ключу
ON; отсутствие парыONсвязывает каждую строку с каждой. - INNER JOIN исключает строки, не имеющие соответствия на другой стороне.
INNER JOIN matches keys · INNER JOIN сопоставляет ключи
Rows from two tables combine where the key matches. · Строки из двух таблиц объединяются где ключ совпадает.
List each customer's name next to the total of each of their orders. Join customer to orders on the key, ordered by orders.id. · Перечислить name каждого клиента рядом со total каждого из его заказов. Объединить customer с orders по ключу, отсортировать по orders.id.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Show the customer name and order total for orders of 25 or more, largest total first. · Вывести имя клиента name и номер заказа total для заказов на 25 и более, сначала с наибольшей суммой.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.