带有新手语法错误的SQL:子句

时间:2010-11-08 15:08:05

标签: sql mysql

我有这个条款:

"Select *
From
(
  Select sedi_i18n.*,
  0 orden
    From table sedi_i18n
   Where culture= 'italiano'
   Union
  Select sedi_i18n.*, 1 orden
    From table sedi_i18n
  Where culture<> 'italiano'  
)
Order By orden, culture";

但是我收到了这个错误:

  

SQLSTATE [42000]:语法错误或   访问冲突:1064你有一个   SQL语法错误;检查   与您的MySQL对应的手册   用于正确语法的服务器版本   在'table sedi_i18n附近使用   culture ='italiano'Union Select   sedi_i18n。*,1或'在第6行

有什么想法吗?

此致

哈维

5 个答案:

答案 0 :(得分:2)

您的括号后需要一个子查询别名,并删除单词表 - 如下所示:

Select *
From
(
  Select sedi_i18n.*,
  0 orden
    From sedi_i18n
   Where culture= 'italiano'
   Union
  Select sedi_i18n.*, 1 orden
    From sedi_i18n
  Where culture<> 'italiano'  
) SQ
Order By orden, culture;

答案 1 :(得分:0)

0 orden

需要

0 , orden

相同的问题
1 orden

1, orden

还修复@Stiivi评论

答案 2 :(得分:0)

乍一看,这看起来像个问题:

From table sedi_i18n

应该是:

From sedi_i18n

(没有'table'字样)

第6行和第10行相同。

答案 3 :(得分:0)

你的陈述中是否需要“表格”这个词?我建议将联盟拿出来并在没有它的情况下运行它,看看你得到了什么。分解它,看看你的真实错误在哪里。

答案 4 :(得分:0)

在查询中删除“table”一词。也是内部查询的别名。

"Select *
From
(
  Select sedi_i18n.*,
  0 orden
    From sedi_i18n
   Where culture= 'italiano'
   Union
  Select sedi_i18n.*, 1 orden
    From sedi_i18n
  Where culture<> 'italiano'  
) a
Order By orden, culture";
相关问题