mysql - ON 语句中的别名是未知列

标签 mysql syntax

我确定之前有人问过这个问题,但我没有找到答案。

在下面的 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/

相关文章:

javascript - 对象字面量语法奇怪

mysql - 在 MySQL 数据库中存储纬度/经度时使用的理想数据类型是什么?

xslt - 使用 xslt 将 xhtml 转换为 wiki 语法

c++ - 使用 C/C++ 将后缀/前缀表达式显示为解析树

mysql - SQL 前向引用语法

Mysql存储过程

java - 从服务器发送数据的最佳方式

Python MySQL 在 Blob 中插入和检索列表

php - fatal error : ezSQL_mysql requires mySQL Lib to be compiled and or linked in to the PHP engine

php - PHP 对变量名或函数名的长度有限制吗?