Я уверен, что об этом уже спрашивали, но я не нахожу ответа.

В приведенном ниже операторе ON я не могу заставить работать псевдонимы. Неизвестный столбец 'node__field_plant_descriptors.gid' в 'on clause' (d_id выдаст ту же ошибку)

SELECT descriptors.Entity_id AS d_id,
genus.field_plant_genus_value AS gval,
genus.Entity_id AS gid
FROM table__plant_descriptors AS descriptors
JOIN table__plant_genus AS genus 
ON genus.gid = descriptors.d_id /* HERE */
WHERE (field_1, field_2) 
IN ( (8758, 8109), (8770, 8060),(8773, 7922) ) 
GROUP BY Entity_id 
HAVING count(Entity_id) = 3
1
turpentyne 2 Июн 2018 в 08:24

1 ответ

Лучший ответ

Вы не можете получить доступ к псевдониму напрямую по имени.

As создает псевдоним столбца, и вы не можете присоединиться к псевдониму столбца. Вы можете использовать псевдоним в ORDER BY, но нигде больше, если только псевдоним не получен из подзапроса.

Попробуйте запрос ниже

    SELECT
  descriptors.Entity_id AS d_id,
  genus.field_plant_genus_value AS gval,
  genus.Entity_id AS gid
FROM
  table__plant_descriptors AS descriptors
  JOIN table__plant_genus AS genus ON table__plant_genus.gid = table__plant_descriptors.d_id
  /* HERE */
WHERE
  (field_1, field_2) IN ((8758, 8109), (8770, 8060),(8773, 7922))
GROUP BY
  Entity_id
HAVING
  count(Entity_id) = 3
0
Dinesh Ghule 2 Июн 2018 в 05:28