[РЕШЕНО] SQL в Drupal 7

Главные вкладки

Аватар пользователя z-s z-s 13 декабря 2012 в 0:28

Просьба помочь разобраться в прослойке работы с БД.

1. Мне все-таки не очень понятно когда использовать db_select() а когда EntityFieldQuery - и в чем разница.

2. [срочно надо понять] в EntityFieldQuery - каким образом сделать условие на типа WHERE node.a = node.b (->fieldCondition('a','value',???) - здесь указывается переменная а вот как туда запихнуть node.b - черт его знает)

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 13 декабря 2012 в 0:50

1. В 6-ке был db_rewrite, через него можно было модифицировать запрос другими модулями, в 7-ке db_query лишен такой возможности, а в db_select() есть для этого ->addTag()
2. Скорей всего Вам Вам нужен ->innerJoin(), ->condition() используются для условий на значения

Аватар пользователя z-s z-s 13 декабря 2012 в 0:53

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
1. В 6-ке был db_rewrite, через него можно было модифицировать запрос другими модулями, в 7-ке db_query лишен такой возможности, а в db_select() есть для этого ->addTag()
2. Скорей всего Вам Вам нужен ->innerJoin(), ->condition() используются для условий на значения

1. Спасибо.
2. Неужели для простого сравнения значений в одной строке для двух полей только через джойн.. просто итак уже нагружено всего на сайте, лишний тик не хочется использовать если можно без него.

Аватар пользователя z-s z-s 13 декабря 2012 в 1:12

innerJoin() интерфейс напиши пожалуйста. Что-то на орге не вижу для EntityFieldQuery

или это только для db_select() ?