Связи и запросы
Продолжайте в базе из главы «Первая база данных». В ней три сотрудника, включая Clara, для которой отдел не указан.
Соединение таблиц
Заголовок раздела «Соединение таблиц»Внешний ключ хранит идентификатор отдела. Чтобы прочитать его название, соедините таблицы сотрудников и отделов:
SELECT e.name, d.name AS departmentFROM employees AS eLEFT JOIN departments AS d ON e.department_id = d.idORDER BY e.id;| name | department |
|---|---|
| Alice | Engineering |
| Boris | Support |
| Clara | NULL |
LEFT JOIN сохраняет каждого сотрудника, даже если подходящего отдела нет.
Тогда выбранное название отдела равно NULL. Внутреннее соединение исключило
бы сотрудников без соответствующего отдела.
Переход по объявленной связи
Заголовок раздела «Переход по объявленной связи»RadixDB может вывести ту же связь из объявленного внешнего ключа:
SELECT e.name, e.department_id.name AS departmentFROM employees AS eORDER BY e.id;Результат совпадает с таблицей выше. Псевдоним e выбирает строку сотрудника,
department_id — её столбец внешнего ключа, а name принадлежит отделу,
на который он ссылается. Чтение только e.department_id по-прежнему возвращает
значение ключа.
Навигация — способ записи запроса, а не объект, хранящийся в столбце. Пример проходит по одной объявленной связи и не означает поддержку произвольного обхода графа или изменения данных через путь.
SQL-глава «Навигация по ссылкам» подробно описывает цепочки, NULL, группировку, диагностику и постоянную границу записи.
Перейдите к транзакциям.