[英]Use where condition on alias name of subquery
SELECT
ID
, NAME
, EMAIL
, (SELECT Address FROM TABLE1 where T1ID=ID) as NewAddress
FROM TABLE2
WHERE NewAddress LIKE '%string%';
在此查询中,我想检查NewAddress列上的条件,我不想传递子查询中的条件(有某种原因)...
我的意思是说我想在这里检查子查询别名的条件NewAddress
在这里,我收到“ where子句”中的未知列“ NewAddress”的错误
我的建议是取消子查询,并使用联接重写查询:
SELECT t2.ID,
t2.Name,
t2.Email,
t1.Address AS NewAddress
FROM Table2 AS t2
INNER JOIN Table1 AS t1
ON t1.ID = t2.T1ID
WHERE t1.Address like '%string%';
它将解决您在该列上进行过滤的问题,并且几乎可以肯定会有更好的表现。 双赢的局面。
您可以将查询的一部分放在另一个子查询中,例如thie:
SELECT * FROM
(
SELECT
ID
, NAME
, EMAIL
, (SELECT Address FROM TABLE1 where T1ID=ID) as NewAddress
FROM TABLE2
) AS SUBQUERY_01
WHERE NewAddress LIKE '%string%';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.