on语句中的别名是未知列

pxyaymoc  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(332)

我肯定以前有人问过这个问题,但我没有找到答案。
在下面的on语句中,我无法使用别名。“on子句”中的未知列“node\u field\u plant\u descriptors.gid”(d\u 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
bfrts1fy

bfrts1fy1#

不能通过名称直接访问别名。
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

相关问题