【问题标题】:Unknown column '2' in 'order clause'“订单子句”中的未知列“2”
【发布时间】:2011-01-10 18:45:25
【问题描述】:
select count(distinct(vw_SIPMIP.product_id)) from vw_SIPMIP , sp_mip_rule  
where 
vw_SIPMIP.product_id not in (select a.product_id from vw_non_SIPMIP a) 
and sp_mip_rule.id = vw_SIPMIP.id 
and sp_mip_rule.createdby != '_IMPORT' limit 1 

我不断收到此错误

【问题讨论】:

  • 您显示的查询中没有“2”,也没有 ORDER 子句。
  • 我知道那是最糟糕的部分......我不知道它从哪里得到“订单”条款......
  • 我的猜测 - order by 在你的视野之内 - vw_SIPMIPvw_non_SIPMIP。您可以发布这些视图的代码吗?
  • 您是否尝试使用命令行执行查询?
  • 不,我没有在命令行上尝试过...我现在试试

标签: mysql sql mysql-error-1054


【解决方案1】:

您的语法在 distinct 上不正确...通过使用 (parens),它认为 Distinct 是一个函数并期望内部值作为参数传递并返回一个值...您想要的是。 ..此外,由于您没有要返回的其他列,因此您不需要限制一... COUNT(*) 或 COUNT(DISTINCT SomeColumn) 将始终单独返回一行...没有分组需要。

select count(distinct vw_SIPMIP.product_id) YourDistinctCount
   from vw_SIPMIP, 
        sp_mip_rule
   where  vw_SIPMIP.product_id not in (select a.product_id from vw_non_SIPMIP a)  
     and sp_mip_rule.id = vw_SIPMIP.id  
     and sp_mip_rule.createdby != '_IMPORT'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2011-11-14
    • 2011-06-03
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多