Drupal — Почему «Из узла node» в SQL-запросе в представлениях?

#sql #drupal

#sql #drupal

Вопрос:

ОК… Я копаюсь в недрах Drupal, пытаясь понять, что, черт возьми, там происходит 🙂

Я уверен, что это смехотворно глупый вопрос, но когда я создаю представление узла, почему SQL-запрос ‘SELECT [….] ИЗ узла node’ а не просто ‘ВЫБЕРИТЕ [….] FROM узел’ Что означает второй ‘узел’?

Приветствую, Джеймс

Ответ №1:

«node узел» — это псевдоним таблицы, который, оказывается, идентичен реальному имени таблицы в вашем запросе. Псевдонимы используются для операторов JOIN.

Ссылка на таблицу может иметь псевдоним, используя tbl_name В качестве alias_name или tbl_name alias_name:

Я предполагаю, что drupal генерирует псевдоним, даже когда он не нужен.

Комментарии:

1. Явная причина, скорее всего, в том, что Drupal поддерживает префикс таблицы базы данных, поэтому node при другой установке может быть чем-то вроде drupal_node . И чтобы иметь возможность всегда идентифицировать эту таблицу, views добавляет псевдоним.

Ответ №2:

Как говорит brian_d, второе вхождение node — это псевдоним таблицы для использования в запросе. Возможно (хотя я не знаю наверняка), что псевдоним генерируется как очищенный идентификатор на случай, если фактическое имя таблицы является чем-то громоздким, например Star$Linked_System:username:password@example.com:3306:/some/insane;filesystem .

Для такого красивого имени, как node , очищенная версия совпадает с исходной.