Таблица views_view_join
Таблица views_view_join является системной таблицей модуля Views и служит для хранения настроек соединений между таблицами базы данных. Эти настройки определяют, как таблицы будут связаны в SQL-запросах, генерируемых представлениями.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
id |
serial |
Уникальный идентификатор записи о соединении. Первичный ключ таблицы. |
vid |
int |
Идентификатор версии представления. Внешний ключ к таблице views_view.
|
table |
varchar(64) |
Имя таблицы, к которой выполняется присоединение. |
field |
varchar(64) |
Поле в присоединяемой таблице, используемое для условия соединения. |
left_table |
varchar(64) |
Имя левой таблицы в операции JOIN. |
left_field |
varchar(64) |
Поле в левой таблице, используемое для условия соединения. |
operator |
varchar(64) |
Оператор сравнения для условия JOIN (например, =, !=, >). |
type |
varchar(16) |
Тип соединения: LEFT, INNER, RIGHT или OUTER. |
extra |
text |
Дополнительные условия JOIN в сериализованном формате. |
Как это работает
При создании представления в Drupal Views администратор может добавлять отношения (relationships) к другим таблицам базы данных. Каждое такое отношение создает запись в таблице views_view_join, которая определяет параметры SQL-оператора JOIN.
Поля left_table и left_field определяют основную таблицу и поле, с которыми происходит соединение, а поля table и field определяют присоединяемую таблицу и поле. Поле type определяет тип соединения, что позволяет гибко настраивать поведение запроса при отсутствии соответствий в присоединяемой таблице.
Поле extra может содержать дополнительные условия фильтрации для JOIN в сериализованном формате, что позволяет создавать сложные условия соединения beyond простого сравнения полей.
При построении SQL-запроса модуль Views использует информацию из этой таблицы для генерации соответствующих JOIN-операторов, обеспечивая гибкость в создании сложных запросов к базе данных без необходимости написания SQL-кода вручную.
Пример SQL-запроса
Посмотреть все JOIN-операторы для определенного представления можно следующим запросом:
SELECT j.*, v.name as view_name
FROM views_view_join j
JOIN views_view v ON j.vid = v.vid
WHERE v.name = 'my_custom_view'
ORDER BY j.id;
Смотрите также
-
таблицу
views_view,
которая хранит основные настройки представлений -
таблицу
views_display,
которая содержит настройки отображений представлений -
таблицу
views_handler,
которая хранит обработчики полей и фильтров -
таблицу
views_cache,
которая управляет кэшированием представлений