псевдонимы в операторе ON неизвестны - PullRequest
0 голосов
/ 02 июня 2018

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

В приведенном ниже предложении ON я не могу заставить псевдонимы работать.Неизвестный столбец 'node__field_plant_descriptors.gid' в 'on условии' (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 Ответ

0 голосов
/ 02 июня 2018

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

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...