[英]problems with embedding select statement
我试图在from子句中嵌入一条select语句,但收到一条错误消息。 我无法理解问题所在。 谁能帮我这个? 我正在使用Postgres数据库。
select
r.recipetitle,
r.preparation,
rcfiltered.classname
from
(
select
recipeclassid,
recipeclassdescription as classname
from
recipe_classes as rc
where
rc.classname = 'Main course'
or rc.classname = 'Dessert'
) as rcfiltered
inner join recipes as r on rcfiltered.recipeclassid = r.recipeclassid;
错误消息是-列rc.classname不存在。
由于您正在执行以下操作: recipeclassdescription as classname
,因此需要在WHERE clause
将该列引用为recipeclassdescription
。
子查询之外的WHERE
子句可以使用classname
。
问题是您已重命名该列。 但是,您可以大大简化查询:
select r.recipetitle, r.preparation,
rc.recipeclassdescription as classname
from recipe_classes rc join
recipes r
on rc.recipeclassid = r.recipeclassid
where rc.recipeclassdescription in ('Main course', 'Dessert');
笔记:
IN
而不是重复的OR
比较。 WHERE
子句中无法识别列别名,因此您必须使用原始列名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.