我确定之前有人问过这个问题,但我没有找到答案。
在下面的 ON 语句中,我无法使用别名。 “on 子句”中的未知列“node__field_plant_descriptors.gid” (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
最佳答案
您不能直接通过名称访问别名。
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
关于mysql - ON 语句中的别名是未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50653778/