2012-03-27 45 views
0
SELECT E.flmavailable_date,E.flmavailable_num_licenses, flmavailable_product AS SERVER 
FROM (SELECT flmavailable_num_licenses,flmavailable_date 
     FROM licenses_available 
     ORDER BY flmavailable_num_licenses ASC) E 
WHERE flmavailable_product <= 4; 

错误:---在“字段列表”未知列“flmavailable_product”有关SQL查询

即使有场这个名字我收到错误调用。 我需要帮助解决这个

回答

0

你的外select正试图从你的内心select选择flmavailable_product,尚未有在内部查询没有这样的领域。

您是否可以包含licenses_available表的模式以及您的查询要返回的内容的描述?这会让你更容易帮助你。根据你的查询,看起来你可能不需要内部子查询。

+0

我需要获得顶级许可证用户 – Raj 2012-03-27 12:23:33

0

您需要包括在内部子查询flmavailable_product场,如果它是在licences_available表中的列,或者加入到含有这一领域内查询相应的表格:

SELECT E.flmavailable_date,E.flmavailable_num_licenses,flmavailable_product AS SERVER 
FROM (SELECT flmavailable_num_licenses,flmavailable_date, flmavailable_product 
     FROM licenses_available ORDER BY flmavailable_num_licenses ASC)E 
    WHERE flmavailable_product <= 4; 

而且,不知道为什么你使用内部的子查询,因为它只是一个直接的选择

0

这是你想写的查询。

SELECT flmavailable_num_licenses,flmavailable_date, flmavailable_product AS SERVER 
    FROM licenses_available 
    WHERE flmavailable_product <= 4 
    ORDER BY flmavailable_num_licenses ASC 
+0

在此上下文中不需要子查询。 – Gopal 2012-03-27 12:25:40

+0

非常感谢gopal – Raj 2012-03-27 12:27:33

0

一般选择查询的结构是:

SELECT a,b,c FROM `table` 
WHERE x<=y 

这里你内心的查询充当表。但是,您的内部查询仅返回两列:flmavailable_num_licenses & flmavailable_date。

在您的外部查询中,当您尝试选择列('flmavailable_product')在表(内部查询)中不可用时出现错误。

这很明显是由错误('字段列表'中的未知列'flmavailable_product')显示的。

要解决此问题,您需要在内部查询中选择flmavailable_product,或者如果它不存在,请使用join将所需列存在的表中加入。

请提供精确查询的表结构。