Sql WHERE子句中存在未知列错误
为什么要这样问:Sql WHERE子句中存在未知列错误,sql,Sql,为什么要这样问: SELECT SQL_CALC_FOUND_ROWS,a.*,(SELECT cy.iso_code FROM ps_address AS addr, ps_country AS cy WHERE addr.id_customer=a.id_customer AND addr.id_
SELECT SQL_CALC_FOUND_ROWS,a.*,(SELECT cy.iso_code
FROM ps_address AS addr, ps_country AS cy
WHERE addr.id_customer=a.id_customer
AND addr.id_country=cy.id_country) iso_code
FROM `ps_customer` a
WHERE iso_code='IT'
ORDER BY a.`id_customer` ASC
LIMIT 0,50
返回我:1054-where子句中的未知列“iso_代码”?来自:
不允许在WHERE子句中引用列别名,因为在执行WHERE子句时可能尚未确定列值。看
不能在WHERE子句中使用列别名-只能使用在查询中使用的一个表中实际存在的列
你可以;然后您可以将标准应用于该表。来自:
不允许在WHERE子句中引用列别名,因为在执行WHERE子句时可能尚未确定列值。看
不能在WHERE子句中使用列别名-只能使用在查询中使用的一个表中实际存在的列
你可以;然后您可以将条件应用于该表。看起来iso_代码列来自ps_地址表,该表仅在您在主查询ps_客户的选择列表中进行的子查询的上下文中可用
此外,您不需要在主查询中使用WHERE语句,因为您已经在子查询中限制了iso_代码值。删除它就可以了。看起来iso_代码列来自ps_地址表,该表仅在您在主查询ps_客户的选择列表中进行的子查询的上下文中可用
此外,您不需要在主查询中使用WHERE语句,因为您已经在子查询中限制了iso_代码值。删除它就可以了。上面的SQL将不起作用,因为执行是按以下顺序开始的
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
因此,列的别名将被指定为执行过程中的第二个最后一步,以及在此之前发生的位置。所以SQL引擎永远不会知道这里有什么iso_代码
希望这有帮助。上述SQL将无法工作,因为执行将按以下顺序开始
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
因此,列的别名将被指定为执行过程中的第二个最后一步,以及在此之前发生的位置。所以SQL引擎永远不会知道这里有什么iso_代码
希望这能有所帮助。这也是我的第一个建议,但它是精选的。。。iso_代码这也是我的第一个建议,但它是精选的。。。iso_代码