>_ IzzyLab

Практическое задание

PostgreSQL: INNER JOIN

средне

В базе shop есть таблицы customers(id,name,city) и orders(id,customer_id,amount). Выведи для каждого заказа пару имя|сумма, отсортированную по сумме по возрастанию, в /root/join.txt (формат psql -tA, поля через |).

Что потренируешь:
  • join
  • inner join
  • внешний ключ
  • postgresql
  • psql

Разбор темы

JOIN соединяет строки двух таблиц по условию совпадения, заданному в ON. Здесь одна таблица ссылается на другую через внешний ключ: строка-потомок хранит числовой id родителя, а не его человекочитаемые поля, поэтому нужное имя лежит в связанной таблице. Обычное соединение (INNER) оставляет только те строки, для которых нашлась пара с обеих сторон; если бы требовались и записи без пары, понадобился бы LEFT JOIN. Псевдонимы таблиц сокращают запись и разрешают неоднозначность одинаковых имён столбцов.

Что проверяется

  1. join отсортирован по сумме

Как это выглядит