#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
, очищенная версия совпадает с исходной.