Как задавать SQL запросы к базе данных MySQL через Database API Drupal 7 (понятным русским языком)

    Опубликовано Andres - пт, 11/02/2018 - 11:15

    Источник и место где можно взять другую годную инфу по теме:

    http://xandeadx.ru/blog/drupal/88

     

    SQL запрос состоит из следующего:

    1. [SELECT] Получение ключевой таблицы (пример таблица {node})
    2. [INNER JOIN] Подключение дополнительных таблиц по одному из столбцов текущей таблицы (пример таблица {field_data_field_example_1})
    3. [INNER JOIN] Можно подключить ещё одну таблицу (пример таблица {field_data_field_example_2}) (например если вы хотите получить выборку по условиям на основе нескольких полей. В Drupal одно поле - одна таблица)
    4. [WHERE] Фильтрация по любому из загруженных столбцов.

    $nodes = db_query("
      SELECT n.nid, u.field_zpid_or_choid_value, f.field_typ_dvig_po_sklad_value FROM {node} n
      INNER JOIN {field_data_field_example_1} u ON n.nid = u.entity_id
      INNER JOIN {field_data_field_example_2} f ON n.nid = f.entity_id
      WHERE type = :type AND field_typ_dvig_po_sklad_value = :field_typ_dvig_po_sklad_value AND field_zpid_or_choid_value = :field_zpid_or_choid_value
      ", array(':type' => 'dvig_po_sklady', ':field_typ_dvig_po_sklad_value' => 's1a', ':field_zpid_or_choid_value' => 28231))->fetchAll();

    print_r($nodes);